我正在尝试在我的最后一行 HasMany 关系上使用 Laravel Eloquent whereHas 来查找上次更新状态但是这个查询让我所有的操作都没有顺序。我看到了这个。我想在 lastAction 上使用 where 查询,这对我不起作用。谢谢
我的 Order.php 文件
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $table = "orders";
protected $guarded = [];
public function action()
{
return $this->hasMany(OrderAction::class, 'order_id');
}
}
我的 OrderController.php 文件
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class OrderController extends Controller
{
public function index(Request $request)
{
$items = Order::where(function ($query) use ($request) {
if ( !empty($request->filter_status )) {
$query->whereHas('action',function($query1) use ($request){
$query1->where('state_to',$request->filter_status);
});
}})->latest('id')->paginate(20);
$items->appends($request->query());
return view('order.index',compact('items'));
}
}