如何从 Laravel 5.1 中的 Blade 调用控制器操作?
How to call controller action from Blade in Laravel 5.1?
我试图在 Laravel 5.1 的视图中调用控制器操作,但无法执行此操作。
这是我目前尝试过的方法:
<?php echo BridesController::getPhotographer($data->sender_id);?>
但它给出 Class 'BridesController' not found 错误。
要在属于您当前操作的视图中呈现外部操作输出,您需要从当前操作中调用外部操作,然后将其输出存储到一个变量并将其传递给您的当前视图。
从同一控制器调用操作
如果您要渲染的动作在您正在使用的同一控制器内,您可以调用:
$result = $this->action();
return view('my.view',['my_rendered_action'=>$result]);
然后,在您的视野中,只有:
{!! $my_rendered_action !!}
注意 不渲染 任何来自用户使用此方法的内容,因为 {!! !!} 标签不会逃避危险的输入。如果您不需要在您的操作响应中包含 HTML,请始终更喜欢使用 {{ }}。
从另一个控制器调用操作
如果你需要在多个控制器之间共享一个方法,最简洁的方法是创建一个实现逻辑的特征或作业,然后两个控制器将使用该特征或调度相同的作业。
详情请参考
希望对您有所帮助。 ;)
如果您创建自己的门面,则可以这样做。
控制器:
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Facade;
class BridesController extends Facade {
protected static function getFacadeAccessor() {
//what you want
return 'getPhotographer';
}
public static function getPhotographer() {
return "photographer";
}
}
//可能是服务商
config/app.php
'BridesController'=> App\Http\Controllers\BridesController::class,
然后你就可以在你的视图中使用了。
<div class="panel-body">
{{BridesController::getPhotographer()}}
</div>
我还没有测试过,但我认为应该可以。
你可以这样做:
action('BridesController@getPhotographer',$data->sender_id);
当然,如果您正在使用 blade,您可以这样做
{{ action('BridesController@getPhotographer',$data->sender_id) }}
你可以在这里查看
http://laravel.com/docs/5.1/controllers#basic-controllers
我试图在 Laravel 5.1 的视图中调用控制器操作,但无法执行此操作。
这是我目前尝试过的方法:
<?php echo BridesController::getPhotographer($data->sender_id);?>
但它给出 Class 'BridesController' not found 错误。
要在属于您当前操作的视图中呈现外部操作输出,您需要从当前操作中调用外部操作,然后将其输出存储到一个变量并将其传递给您的当前视图。
从同一控制器调用操作
如果您要渲染的动作在您正在使用的同一控制器内,您可以调用:
$result = $this->action();
return view('my.view',['my_rendered_action'=>$result]);
然后,在您的视野中,只有:
{!! $my_rendered_action !!}
注意 不渲染 任何来自用户使用此方法的内容,因为 {!! !!} 标签不会逃避危险的输入。如果您不需要在您的操作响应中包含 HTML,请始终更喜欢使用 {{ }}。
从另一个控制器调用操作
如果你需要在多个控制器之间共享一个方法,最简洁的方法是创建一个实现逻辑的特征或作业,然后两个控制器将使用该特征或调度相同的作业。
详情请参考
希望对您有所帮助。 ;)
如果您创建自己的门面,则可以这样做。
控制器:
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Facade;
class BridesController extends Facade {
protected static function getFacadeAccessor() {
//what you want
return 'getPhotographer';
}
public static function getPhotographer() {
return "photographer";
}
}
//可能是服务商
config/app.php
'BridesController'=> App\Http\Controllers\BridesController::class,
然后你就可以在你的视图中使用了。
<div class="panel-body">
{{BridesController::getPhotographer()}}
</div>
我还没有测试过,但我认为应该可以。
你可以这样做:
action('BridesController@getPhotographer',$data->sender_id);
当然,如果您正在使用 blade,您可以这样做
{{ action('BridesController@getPhotographer',$data->sender_id) }}
你可以在这里查看 http://laravel.com/docs/5.1/controllers#basic-controllers