【问题标题】:Laravel 5.2 correct way to use variables in bladeLaravel 5.2 在刀片中使用变量的正确方法
【发布时间】:2016-07-08 21:53:32
【问题描述】:

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

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

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

当我在刀片上时,我会这样做

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

现在我的问题是如何使用 foreach 中的变量设置变量?目前我在刀片模板文件中使用 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

【问题讨论】:

  • 谢谢,所以我的意思是有没有办法从控制器或视图而不是刀片设置这些?从你链接我的内容来看,我只是用 {{-- */ 换掉了
  • Blade 没有任何办法。所以,我认为这是最好的选择。
  • 我个人认为注释风格的变量声明比在视图中使用纯 PHP 更加混乱。到目前为止,后者是我解决它的方式。

标签: php templates variables blade laravel-5.2


【解决方案1】:

如果其他人正在寻找我的问题的解决方案。

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 mutator,https://laravel.com/docs/master/eloquent-mutators

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

请注意,函数名称中的下划线转换为驼峰式,输出设置为 $value,然后您可以在函数内部设置变量并根据需要塑造输出,然后在刀片中您可以摆脱所有额外的废话,只需使用 {{ $user->last_online }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2017-03-01
    • 2018-05-30
    • 2017-06-08
    • 1970-01-01
    • 2016-12-29
    • 2019-02-19
    相关资源
    最近更新 更多