![](/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.