gpt4 book ai didi

php - Laravel 5.2 在 Blade 中使用变量的正确方法

转载 作者:行者123 更新时间:2023-12-03 22:57:55 24 4
gpt4 key购买 nike

所以我知道通过 Controller 传递变量,例如,如果它是一个查询数组,我会做

public function index()
{
$query = Request::get('q');
if ($query) {
$users = User::where('username', 'LIKE', "%$query%")->get();
}

return view('view', compact('users'));
}

当我在 Blade 上时,我会做

 @if( ! empty($users))     
@foreach($users as $user)
{{ $user->username }}
@endforeach
@endif

现在我的问题是如何使用 foreach 中的变量设置变量?目前我在 Blade 模板文件中使用 PHP,但我觉得这很乱,这就是我所拥有的

@if( ! empty($users))     
@foreach($users as $user)
<?php
$lastOnline = \Carbon\Carbon::createFromTimeStamp(strtotime($user->last_online))->diffForHumans();
$fiveMinsAgo = \Carbon\Carbon::now()->subMinute(5);
?>
{{ $user->username }}
@if ($user->last_online <= $fiveMinsAgo)
{{ $lastOnline }}
@else
Online Now
@endif
@endforeach
@endif

最佳答案

找到解决我的问题的方法,如果有人正在寻找的话。

public function getLastOnlineAttribute($value)
{
$fiveMinsAgo = \Carbon\Carbon::now()->subMinute(5);
$thirtMinsAgo = \Carbon\Carbon::now()->subMinute(30);
$lastOnline = \Carbon\Carbon::createFromTimeStamp(strtotime($value))->diffForHumans();
if ($value <= $fiveMinsAgo) {
echo 'Last Active: '.$lastOnline.'';
}
else {
echo 'Online Now';
}

}

基本上将它添加到您的变量模型中(例如,如果它是 $user->last_online 它将进入用户模型),如果您正在寻找更多信息,它被称为 Eloquent 突变器,https://laravel.com/docs/master/eloquent-mutators

它获取变量的数据,例如 {{ $user->last_online }}

注意函数名中的Underscore转换为CamelCase,输出设置为$value,然后你可以在函数内部设置变量并根据需要塑造输出,然后在blade中你可以去掉所有多余的废话,只需使用 {{ $user->last_online }}

关于php - Laravel 5.2 在 Blade 中使用变量的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36147138/

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