扩展 Eloquent 模型似乎是人们所做的事情。我有一个有趣的问题:
文件库
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class FooBase extends Model {
protected $table = 'foo_bar';
}
FooExtends.php
namespace App\Models;
class FooExtends extends FooBase {
public function method() {
return FooBase::first(); // or even parent::first()
}
}
调用(new FooExtends())->method()返回一个FooExtends而不是的实例FooBase。(只是静态方法受到影响,这可能会回答我自己的问题,但有人会认为 Laravel 会处理这个问题。(new FooBase())->first()从子类内部调用是有效的。)这里发生了什么?
PHP 7.3,Laravel 5.7
白猪掌柜的