I'm trying to use Laravel Eloquent whereHas on my last row of HasMany relation for finding last update status But this query get me all actions off order . I see this . I want to use where query on lastAction and this not work for me. thanks
My Order.php file
<?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');
}
}
My OrderController.php file
<?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'));
}
}