我正在尝试根据表列的值在雄辩的模型中建立条件关系,但这不起作用。
这是我正在使用的代码:
//RELATIONS
public function task_schedule()
{
if ($this->task_schedule_id === 0) {
return $this->belongsTo('TaskSchedule', 'hold_task_schedule_id', 'id');
} else {
return $this->belongsTo('TaskSchedule');
}
}
基本上,我想使用不同的列来获取我的子模型在属于关系中定义。
scopeProfile($ query)对我不起作用,因为我不想在每个查询中都检索该孩子,并且我在很多地方都使用Task-> with('task_schedule')代码。
答案 0 :(得分:0)
属于关系
//associate
$account = App\Account::find(10);
$user->account()->associate($account);
$user->save();
//dissociate
$user->account()->dissociate();
$user->save();
// * Get the author of the post.
public function user()
{
return $this->belongsTo('App\User')->withDefault();
}
//Get the author of the post.
public function user()
{
return $this->belongsTo('App\User')->withDefault([
'name' => 'Guest Author',
]);
}
//Get the author of the post.
public function user()
{
return $this->belongsTo('App\User')->withDefault(function ($user) {
$user->name = 'Guest Author';
});
}
这四个方法中的四个是hasMany,hasOne,belongsTo,belongsToMany。
class Country extends Model
{
public function neighbors()
{
return $this->hasMany(\App\Country::class);
}
public function president(){
return $this->hasOne(\App\Person::class);
}
public function continent(){
return $this->belongsTo(\App\Continent::class);
}
public function associations(){
return $this->belongsToMany(\App\Association::class)->using(\App\CountryAssociation::class);
}
}
参考文献: