我需要过滤用户信息并仅返回最新行。
Blade
@foreach($users as $user)
//user data
@foreach($user->invoices as $invoice)
{{$invoice->type->name}}
@endforeach
@endforeach
这将返回我需要过滤并仅获取最新发票的所有用户发票。
我知道我可以通过控制器中的first()
获取最新行,但是由于此数据在我的用户页面(显示所有用户)中,因此我无法在控制器中循环用户,因此我需要获取刀片中的first
操作。
Controller
public function index()
{
$users = User::orderby('id', 'desc')->get();
return view('admin.users.index', compact('users'));
}
有什么想法吗?
答案 0 :(得分:0)
要获得最新的创新,您可以执行以下操作:
$user->inovices->latest() or $user->inovices()->latest()
方法latest()按created_at desc对所有行进行排序,并采用第一个。
如果这样不起作用,您可以:
User.php模型:
public function latestInovice() {
return $this->hasOne(Inovice::class)->latest();
}
然后使用:
$users = User::with(['latestInovice'])->get();
答案 1 :(得分:0)
我在下面使用了代码,现在显示了我的最新行
{{$user->invoices->last()->type->name}}
感谢那些没有提供解决方案的人的不赞成,我只是没有 如果我的问题太错了,或者为什么他们不能这样做,那太荒谬了 解决吗?!