S_R*_*S_R 1 php laravel eloquent laravel-5
我需要能够获得包括其软删除元素的“模型关系”,但仅适用于此1实例。我不想更改模型,以便每次使用关系时,它也会返回所有软删除的记录。
我该如何实现?
用户模型
class User extends Authenticatable
{
public function contacts(){
return $this->hasMany('App\Contacts','user_id','id');
}
}
Run Code Online (Sandbox Code Playgroud)
控制者
$user = User::findOrFail($id);
//Need to be able to get the trashed contacts too, but only for this instance and in this function
$user->contacts->withTrashed(); //Something like this
return $user;
Run Code Online (Sandbox Code Playgroud)
我怎样才能只在控制器内部这次获得被破坏的行?
谢谢
Ali*_*r R 39
with()您还可以通过向方法添加子句来预先加载它们
$user = User
::with(['contacts' => fn($q) => $q->withTrashed()])
->findOrFail($id);
Run Code Online (Sandbox Code Playgroud)
您可以使用withTrashed不同的方法。
要将呼叫与您的关系相关联,可以执行以下操作:
public function roles() {
return $this->hasMany(Role::class)->withTrashed();
}
Run Code Online (Sandbox Code Playgroud)
要在飞行中使用它:
$user->roles()->withTrashed()->get();
Run Code Online (Sandbox Code Playgroud)
对于您的特殊情况:
$user->contacts()->withTrashed()->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2893 次 |
| 最近记录: |