Laravel Blade如何使用@show动作打印出uri

时间:2016-02-17 10:30:21

标签: php laravel laravel-blade

在我看来,我想打印一个类似于ShopController@show的控制器。

设置var $controller = 'ShopControll';

视图中的

action($controller.'@show',$id)

但发生了一些错误:

ErrorException in UrlGenerator.php line 603:
Action App\Http\Controllers\ShopController<?php echo $__env->yieldSection(); ?> not defined. 

如果是这样的话:

action('ShopController@show',$id)

可行,输出为:

http://example.com/show/1

那么,有什么区别?

2 个答案:

答案 0 :(得分:1)

@show是一个刀片指令,刀片解析它你要显示的部分请看这里的例子

@section('sidebar')
            This is the master sidebar.
@show

https://laravel.com/docs/5.2/blade#template-inheritance

你可以像这样修改你的方法

action($controller,'show',$id)

答案 1 :(得分:0)

对于Laravel> = 5.3,您可以将@php @endphp与组合使用:

findViewById

对于早期版本,我认为(仅在 5.3 上进行了测试),这也应该起作用:

@php 
    echo @action($controller.'@show', ['id' => $id]) 
@endphp