我正在阅读Laravel Blade文档,我不知道如何在模板中分配变量以供以后使用。我不能使用{{$old_section = "whatever"}},因为这将会返回"whatever",而我不想这样做。
我知道我可以做<?PHP $old_section = "whatever";>,但这并不优雅。
在Blade模板中是否有更好、更优雅的方式来做到这一点?
我正在阅读Laravel Blade文档,我不知道如何在模板中分配变量以供以后使用。我不能使用{{$old_section = "whatever"}},因为这将会返回"whatever",而我不想这样做。
我知道我可以做<?PHP $old_section = "whatever";>,但这并不优雅。
在Blade模板中是否有更好、更优雅的方式来做到这一点?
当前回答
入侵评论并不是一种非常可读的方式。此外,编辑器会将其着色为注释,有人在查看代码时可能会错过它。
试试这样做:
{{ ''; $hello = 'world' }}
它将编译成:
<?php echo ''; $hello = 'world'; ?>
...完成作业,不要重复任何东西。
其他回答
在拉拉维尔8
@php
$name="Abdul mateen";
{{ echo $name; }}
@endphp
入侵评论并不是一种非常可读的方式。此外,编辑器会将其着色为注释,有人在查看代码时可能会错过它。
试试这样做:
{{ ''; $hello = 'world' }}
它将编译成:
<?php echo ''; $hello = 'world'; ?>
...完成作业,不要重复任何东西。
你可以在视图文件中设置一个变量,但是它会在你设置的时候被打印出来。不管怎样,有一个变通办法。您可以在未使用的部分中设置该变量。例子:
@section('someSection')
{{ $yourVar = 'Your value' }}
@endsection
然后{{$yourVar}}将打印你的值到任何你想要它的地方,但当你保存变量时,你不会得到输出。
EDIT:需要命名部分,否则将引发异常。
我也遇到过类似的问题,并使用View composer找到了我认为正确的解决方案
视图编辑器允许你在每次调用某个视图时设置变量,这些变量可以是特定的视图,也可以是整个视图模板。不管怎样,我知道这不是对这个问题的直接回答(而且晚了2年),但它似乎是一个比在一个视图中使用blade设置变量更优雅的解决方案。
View::composer(array('AdminViewPath', 'LoginView/subview'), function($view) {
$view->with(array('bodyClass' => 'admin'));
});
突然之间什么也不会出现。 根据我的经验,如果你必须做这样的事情,在模型的方法中准备html,或者在数组中重新组织你的代码。
永远不会只有一种方法。
{{ $x = 1 ? '' : '' }}