如何从laravel 5

时间:2017-12-26 10:15:35

标签: php laravel-5

我正在使用Laravel 5,我必须从视图刀片中调用控制器。但它显示我解析错误。请找我的代码。

控制器名称:ReportController(path = app / Http / Controllers / Admin / ReportController)

<?php

namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
//send email use helper
use App\Helpers\MyHelperFunction;

 public static function my($args){
        // do your stuff or return something.
        echo $args."I am called on view.";
    }
?>

查看:customerorders.blade.php

<?php 
use App\Http\Controllers\Admin\ReportController;
     echo ReportController::my('hello'); 
?>

我面临这个错误:

  

方法Illuminate \ View \ View :: __ toString()不能抛出异常,   捕获ErrorException:解析错误:语法错误,意外&#39;使用&#39;   (T_USE)   (查看:/opt/lampp/htdocs/buddyiq_dev/resources/views/Admin/reports/customerorders.blade.php)

我在下面的堆栈网址中引用了上面的代码。

How to call a controller function inside a view in laravel 5

请帮我解决此问题。

4 个答案:

答案 0 :(得分:0)

您可以尝试使用ajax调用控制器中的函数,然后获取响应并将其推送到视图。 关于响应,请记住将return放在函数中。

答案 1 :(得分:0)

如果调用控制器方法的动机只是为了输出字符串,则控制器可能不合适。控制器将模型和视图绑定在一起。

enter image description here

image source: Basic Laravel 5 MVC

视图实际上不应该知道控制器方法。您最好调查一下帮助方法

您链接到的问题中也会回答

  

如果您有一个在多个地方使用的功能,   应该在助手文件中定义

此问题解答很有帮助Best practices for custom helpers on Laravel 5

答案 2 :(得分:-1)

所以我只是在我的一个Laravel设置上尝试过这个。我不确定这是否是最好的方法,但它有效。

将您的函数声明为

public static function my($args)
{
       echo $args."I am called on view.";
}
你已经做过的。然后从视图中调用{{App\Http\Controllers\Admin\ReportController::my($args)}}

答案 3 :(得分:-2)

使用绝对路径代替相对路径,您可以使用如下所示,

 \App\Http\Controllers\Admin\ReportController

但您已使用App\Http\Controllers\Admin\ReportController,请在每个地方更改。