gpt4 book ai didi

laravel - Eloquent withtrashed() 用于在急切加载查询上进行软删除 - Laravel 5.1

转载 作者:行者123 更新时间:2023-12-04 22:58:34 30 4
gpt4 key购买 nike

我正在尝试使用 withTrashed() 进行急切加载。我在我的模型中创建了一个新的 _withtrashed 函数,但是我的客户的查询返回一个 NULL

客户端模型:

// Client
public function client()
{
return $this->belongsTo('App\Client');
}

// Client (withtrashed for soft deletes)
public function client_withtrashed()
{
return $this->belongsTo('App\Client')->withTrashed();
}

订单 Controller :

/**
* Show order.
*/
public function show($id)
{
$order = Order::with('client_withtrashed') ---> it works normally with: Order::with('client') , except I don't get the soft deleted rows
->where('id', '=', $id)
->firstOrFail();

dd($订单);显示一个空的客户端
#relations: array:1 [
"client_withtrashed" => null

有任何想法吗?我决定采用上面的解决方案,因为我无法使用 withTrashed() 来处理我急切的查询 $order = Order::with('client_withtrashed')->withTrashed()

最佳答案

好吧,您不能在关系上定义它,但是您可以在急切加载时添加约束:

$order = Order::with(['client' => function ($query) {
$query->withTrashed();
}])
->where('id', '=', $id)
->firstOrFail();

您可以检查急切加载约束 in the docs

编辑:

您可以定义 withTrashed() 在您的关系中,只需确保您的模型使用 SoftDeleteTrait。
use Illuminate\Database\Eloquent\SoftDeletingTrait;

class Client extends Eloquent {
use SoftDeletingTrait;

}

关于laravel - Eloquent withtrashed() 用于在急切加载查询上进行软删除 - Laravel 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900124/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com