![](/img/trans.png)
[英]How to return a view from laravel controller function upon ajax call?
[英]How to call a controller from view in 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: Parse error: syntax error, unexpected 'use' (T_USE) (View:/opt/lampp/htdocs/buddyiq_dev/resources/views/Admin /reports/customerorders.blade.php)
我从下面的堆栈 url 中引用上面的代码。
请帮我解决这个问题。
您可以尝试使用 ajax 调用控制器中的函数,然后获取响应并将其推送到查看。 关于响应,记得把return
放在你的函数中。
如果您调用控制器方法的动机只是输出字符串,则控制器可能不合适。 控制器将模型和视图绑定在一起。
视图真的不应该知道控制器方法。 您最好研究一下视图助手方法。
这也在您链接到的问题中得到了回答
如果你有一个在多个地方使用的函数,你应该在 helpers 文件中定义它
这个 Q/A 很有帮助Laravel 5 上自定义助手的最佳实践
所以我只是在我的 Laravel 设置之一上尝试了这个。 我不确定这是否是最好的方法,但它有效。
将您的函数声明为
public static function my($args)
{
echo $args."I am called on view.";
}
你已经这样做了。 然后从视图中调用它作为{{App\\Http\\Controllers\\Admin\\ReportController::my($args)}}
使用绝对路径而不是相对路径,您可以像下面这样使用它,
\App\Http\Controllers\Admin\ReportController
但是你已经使用了App\\Http\\Controllers\\Admin\\ReportController
,请在每个地方更改它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.