2016-12-22 6 views
3

私はこのようにしてみてください:ブレードで変数を設定する方法(laravel 5.3)?

... 

    @if(is_null($key['p3'])) 
     {{--*/$p3 = $key['p3']/*--}} 
    @else 
     {{ 0 }} 
    @endif 
    @if(is_null($key['wabku'])) 
     {{--*/$wabku = $key['wabku']/*--}} 
    @else 
     {{ 0 }} 
    @endif 
    <td class="tg-rv4w" width="5%"> 
     {{ number_format($p3 - $wabku,0,',','.') }} 
    </td> 

... 

しかし、それは働いていません。

私を助けることができる人はいますか?

+3

ここに解決策を参照してください。http://stackoverflow.com/questions/13002626/laravels-blade-how-can-i-set-variables-in-をa-template –

+0

@Raghavendra N、私はそれを試してみます。しかし、それは動作していない –

+3

1)これをしないでください。コントローラまたはビューコンポーザで変数を設定します。 2)絶対に必要な場合は、<?phpタグを開いて、できるだけ短く/きれいに/単純にしてください。実際には、それを傷つける。ちょうど#1に従ってください。 – jszobody

答えて

1

L5.xで動作しない可能性のある変数を定義/設定するために、laravel-4テンプレートコメント構文を使用しています。

しかし、あなたは上記の両方@php ($p3 = $key['p3'])

OR

@php 
$p3 = $key['p3'] 
@endphp 

を試すことができますが同じです。

さらに、あなたは 1のように作成する独自のサービスプロバイダに行くBladeServiceProvider作成:登録BladeServiceProvider

<?php 
//app/Providers/BladeServiceProvider.php 
namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 

class BladeServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     /* @datetime($var) */ 
     \Blade::extend(function($view, $compiler) 
     { 
      $pattern = $compiler->createOpenMatcher('datetime'); 

      return preg_replace($pattern, '$1<?php echo $2->format(\'m/d/Y H:i\')); ?>', $view); 
     }); 

     /* @eval($var++) */ 
     \Blade::extend(function($view) 
     { 
      return preg_replace('/\@eval\((.+)\)/', '<?php ${1}; ?>', $view); 
     }); 
    } 

    public function register() 
    { 
     // 
    } 
} 

2:

<?php 
//in config/app.php add 
return [ 

    // ... 

    'providers' => [ 

     // ... 

     'App\Providers\BladeServiceProvider', 

クリア変数@datetime($updated_at)

artisan clear-compiled 割り当て値を遵守

OR

@eval($var = 1) 

からの参照を撮影:Laravel 5 alternative

関連する問題