Laravel 5.6:使用Blade设置变量(不回显)的最简单方法是什么?

时间:2018-08-11 16:11:00

标签: php laravel variables laravel-blade laravel-5.6

因此,我希望设置一个变量,稍后将其附加到资源路由的开头,我目前正在使用以下代码:

{!! 
$baseDestinationImage=asset("img/uploads/destinations/");
!!}

<img src="{!! $baseDestinationImage.'/'.$destination->Dimage !!}" alt="{{$destination->Dname}}">

上面的方法工作正常,这里唯一的问题是变量$ baseDestinationImage也被回显,设置变量而不在Laravel 5.6中显示的最简单方法是什么?

3 个答案:

答案 0 :(得分:1)

然后在控制器中使用。.

public class YourController{ 
   ...
   public function index()
   {
        ...
        $baseDestinationImage=asset("img/uploads/destinations/");
        return view('your.blade.view', compact('baseDestinationImage'));
   }
}

刀片中

<img src="{{ $baseDestinationImage }}" />

答案 1 :(得分:0)

您不应在Blade模板中设置变量。不过,如果您仍然想这样做,则可以使用@php指令嵌入PHP代码:

@php
    $baseDestinationImage=asset("img/uploads/destinations/");
@endphp

答案 2 :(得分:0)

您可以使用eloquent Accessors and mutators进行操作 当您在模型实例上检索或设置雄辩属性值时,可以使用这些格式设置雄辩属性值。

所以您的模型应该像这样:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{

    public function getPhotoAttribute($photo)
    {
        return $photo ? asset('your/path/' . $photo) : '';
    }

}

在刀片上,您可以像这样使用它:

{{ $object->photo }}