Laravel 5.2:通过传递对象而不是字符串来延伸刀片
我想添加一些刀片指令 我在我的服务提供商中有Laravel 5.2:通过传递对象而不是字符串来延伸刀片,laravel,blade,laravel-5.2,Laravel,Blade,Laravel 5.2,我想添加一些刀片指令 我在我的服务提供商中有 Blade::directive('image', function ($media) { return "<?php echo {$media->getImageUrl()}; ?>"; }); $media变量是一个使用media模型的对象,它包含一个公共函数getImageUrl(),该函数返回一个带有图像url的字符串 当我执行这段代码时,我收到了这个错误消息 Fatal error: Call to a memb
Blade::directive('image', function ($media) {
return "<?php echo {$media->getImageUrl()}; ?>";
});
$media变量是一个使用media
模型的对象,它包含一个公共函数getImageUrl()
,该函数返回一个带有图像url的字符串
当我执行这段代码时,我收到了这个错误消息
Fatal error: Call to a member function getImageUrl() on string
Blade指令中传递的对象被视为字符串,而不是媒体对象
有没有办法将$media用作
media
对象而不是字符串?花括号应该在$media
周围:
Blade::指令('image',函数($media){
返回“”;
});
这将编译为:
据我所知,刀片指令只接受一个表达式作为字符串,包括函数调用括号。因此,指令接收到的表达式是:
“($media)”
更改指令后,您应该清除已编译的视图,因为Blade正在缓存这些指令,所以您不会看到更改生效
Fatal error: Call to a member function getImageUrl() on string