Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.1 如何在Laravel 5.1中从刀片调用控制器操作?_Laravel 5.1 - Fatal编程技术网

Laravel 5.1 如何在Laravel 5.1中从刀片调用控制器操作?

Laravel 5.1 如何在Laravel 5.1中从刀片调用控制器操作?,laravel-5.1,Laravel 5.1,我试图在Laravel 5.1中调用视图中的控制器操作,但无法执行此操作 以下是我迄今为止所尝试的: <?php echo BridesController::getPhotographer($data->sender_id);?> 但它给出了“未找到BridesController”类的错误。若要在属于当前操作的视图中呈现外部操作输出,需要从当前操作调用外部操作,然后将其输出存储到变量并将其传递到当前视图 从同一控制器调用操作 如果要渲染的操作位于正在使用的同一控制器内

我试图在Laravel 5.1中调用视图中的控制器操作,但无法执行此操作

以下是我迄今为止所尝试的:

<?php echo BridesController::getPhotographer($data->sender_id);?>


但它给出了“未找到BridesController”类的错误。

若要在属于当前操作的视图中呈现外部操作输出,需要从当前操作调用外部操作,然后将其输出存储到变量并将其传递到当前视图

从同一控制器调用操作 如果要渲染的操作位于正在使用的同一控制器内,则可以调用:

$result = $this->action();

return view('my.view',['my_rendered_action'=>$result]);
然后,在您的视图中,只需:

{!! $my_rendered_action !!}
注意不要渲染使用此方法的用户提供的任何内容,因为{!!!!}标记不会替换危险的输入。如果您不需要在操作响应中包含HTML,请始终使用{{}

从另一个控制器调用操作 如果您需要在多个控制器之间共享一个方法,最干净的方法是创建一个trait或一个实现该逻辑的作业,然后两个控制器都将使用该trait或分派相同的作业

有关更多信息,请参阅


希望有帮助

如果您创建自己的外观,您可以这样做

控制器:

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>

{{BridesController::get摄影师()}}
我还没有测试过它,但我认为它应该可以工作。

您可以这样做:

action('BridesController@getPhotographer',$data->sender_id);
当然,若你们使用的是刀片,你们可以做到这一点

{{ action('BridesController@getPhotographer',$data->sender_id) }}
你可以在这里查一下

您想要实现的目标是什么?当然,还有比从视图执行控制器更好的方法。我在Laravel5.4中尝试了路由解决方案,但结果只是url路径,而不是视图。例如当我调用{{action('page.listAll')}时,结果是“”。如何呈现从操作返回的视图?路由解决方案被标记为“旧答案”,因为它正在打印URL。为了清晰起见,我现在编辑了文本以删除其旧版本。要渲染视图,需要在渲染之前将其存储在变量中。请重新阅读答案(我想现在更清楚了)。