类型提示 Eloquent 模型
Type Hinting Eloquent Models
我正在尝试编写好的代码,其中一部分是类型提示,以便更轻松地完成工作并强制执行期望。
这可能看起来有点做作,但对我来说更像是一个概念证明。
我正在编写一个 class 来获取在选项卡上拆分的 TSV 文件并插入到我的模型中。在我的构造函数中,我要求:
Illuminate\Database\Eloquent\Model
我通过了:
new \App\Model()
最后的错误响应是:
instance of App\Model given
显然我做错了什么,但我不想强制使用App\Model,我怎么能通用地要求一个eloquent模型?
编辑以获取更多信息:
为了更清楚,我使用 Laravel 5,模型是通过 artisan make:model 创建的。构造函数如下:
function __construct ($resource, Illuminate\Database\Eloquent\Model $model, $skip = 0)
我正在使用的模型(用于我的电影 table)是:
use Illuminate\Database\Eloquent\Model;
class Movie extends Model {
在您的类型提示中,在 FQCN 前加一个反斜杠:
function __construct ($resource, \Illuminate\Database\Eloquent\Model $model, $skip = 0)
要么,要么将 use
语句添加到您的 class:
use Illuminate\Database\Eloquent\Model;
class MyClass {
function __construct ($resource, Model $model, $skip = 0) {
//
}
}
我正在尝试编写好的代码,其中一部分是类型提示,以便更轻松地完成工作并强制执行期望。
这可能看起来有点做作,但对我来说更像是一个概念证明。
我正在编写一个 class 来获取在选项卡上拆分的 TSV 文件并插入到我的模型中。在我的构造函数中,我要求:
Illuminate\Database\Eloquent\Model
我通过了:
new \App\Model()
最后的错误响应是:
instance of App\Model given
显然我做错了什么,但我不想强制使用App\Model,我怎么能通用地要求一个eloquent模型?
编辑以获取更多信息:
为了更清楚,我使用 Laravel 5,模型是通过 artisan make:model 创建的。构造函数如下:
function __construct ($resource, Illuminate\Database\Eloquent\Model $model, $skip = 0)
我正在使用的模型(用于我的电影 table)是:
use Illuminate\Database\Eloquent\Model;
class Movie extends Model {
在您的类型提示中,在 FQCN 前加一个反斜杠:
function __construct ($resource, \Illuminate\Database\Eloquent\Model $model, $skip = 0)
要么,要么将 use
语句添加到您的 class:
use Illuminate\Database\Eloquent\Model;
class MyClass {
function __construct ($resource, Model $model, $skip = 0) {
//
}
}