假设我有一个自定义的刀片if指令,我要在其中检查视图中是否存在变量
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Blade::if("exists", function() {
return isset($model);
});
}
}
当前,表达式isset($model)
将在$model
的上下文中检查变量AppServiceProvider
即使我可以先传递模型然后进行修改,我还是在寻找一种无需传递任何信息的解决方案
如何在视图的上下文中获取要评估的指令,或者如何获取传递到视图的数据?
查看示例:
<button type="submit">
@exists
Save
@else
Create
@endexists
</button>
控制器
return view("<path/to/view>", ["model" => $model];
答案 0 :(得分:0)
您所做的只是完美的,但是您应该将$model
参数传递给@exists
指令,如下所示:
@exists($model)
<h1>It is there! :)</h1>
@else
<h1>It is not there! :(</h1>
@endexists
,您应该将$model
作为参数传递给新指令
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Blade::if("exists", function($model) {
return isset($model);
});
}
}
有关此主题的更多信息,请检查laravel文档中的Custom If Statements