我可以将变量发送到 laravel 模型吗?
Can I send a variable into laravel model?
所以我尝试使用以下方法添加从相关 table 获取特定数据,但我不知道这是否是正确的方法。这是它的样子。
public function transspecific($lid){
return $this->belongsTo('raplet\Keepertrans')->where("lang_id", $lid);
}
然后我尝试从中获取数据
dd($akeeper->transspecific($akeeper->id));
它并不像有任何东西,但当我在模型中键入 dd("hello")
时,它起作用了。很明显我的关系背景有问题
您想要做的是在 laravel][1] 模型中添加一个 [dynamic scope,这完全没问题。除了你需要声明与关系方法分开的范围。
关系:
public function keepertrans(){
return $this->belongsTo('raplet\Keepertrans');
}
范围:
public function transspecific($lid){
return $this->keepertrans()->where("lang_id", $lid);
}
然后您可以使用 get()
调用作用域来执行查询生成器:
(SomeOtherRelatedModel::first())->transspecific($someId)->get();
Eloquent 关系模型中可用的方法与您需要的不同。每当您需要添加一个自定义函数,该函数在内部向您的查询(构建器)添加一些过滤器时,您需要使用 scopes
范围函数的通用规则是scope
+ yourfunction
在您的情况下,您需要创建 scopeTranspecific
函数。
每个作用域都将第一个参数作为您在函数内部更新的构建器。后面的参数是可选的。
public function scopeTranspecific($query, $lid){
return $query->keepertrans()->where("lang_id", $lid);
}
然后就可以使用了:
Model::where('column1' , 'value')->transpecific($id)->get()
如果您只是在没有 ->get()
的情况下转储它,您将获得查询生成器实例。您必须执行 ->get()
才能获取数据
所以我尝试使用以下方法添加从相关 table 获取特定数据,但我不知道这是否是正确的方法。这是它的样子。
public function transspecific($lid){
return $this->belongsTo('raplet\Keepertrans')->where("lang_id", $lid);
}
然后我尝试从中获取数据
dd($akeeper->transspecific($akeeper->id));
它并不像有任何东西,但当我在模型中键入 dd("hello")
时,它起作用了。很明显我的关系背景有问题
您想要做的是在 laravel][1] 模型中添加一个 [dynamic scope,这完全没问题。除了你需要声明与关系方法分开的范围。
关系:
public function keepertrans(){
return $this->belongsTo('raplet\Keepertrans');
}
范围:
public function transspecific($lid){
return $this->keepertrans()->where("lang_id", $lid);
}
然后您可以使用 get()
调用作用域来执行查询生成器:
(SomeOtherRelatedModel::first())->transspecific($someId)->get();
Eloquent 关系模型中可用的方法与您需要的不同。每当您需要添加一个自定义函数,该函数在内部向您的查询(构建器)添加一些过滤器时,您需要使用 scopes
范围函数的通用规则是scope
+ yourfunction
在您的情况下,您需要创建 scopeTranspecific
函数。
每个作用域都将第一个参数作为您在函数内部更新的构建器。后面的参数是可选的。
public function scopeTranspecific($query, $lid){
return $query->keepertrans()->where("lang_id", $lid);
}
然后就可以使用了:
Model::where('column1' , 'value')->transpecific($id)->get()
如果您只是在没有 ->get()
的情况下转储它,您将获得查询生成器实例。您必须执行 ->get()
才能获取数据