亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 laravel 中調用兩個控制器

在 laravel 中調用兩個控制器

PHP
桃花長相依 2022-05-27 15:00:43
我已經開始著手創建一個用于展示放大器的網站,并在下面提供評論部分。因此,我設法讓我的放大器詳細信息自行顯示,并且與評論/評論相似。然而,我的觀點的問題是,當我同時調用兩者時,我得到錯誤“Facade\Ignition\Exceptions\ViewException Undefined variable: product (View: C:\XAMPP\htdocs\Term_One_Assignment_Benjamin_Robinson_U1655703\resources\views\product\product.blade. php)"現在我知道它們可以單獨正常工作,但以前從未調用過這樣的東西。Web.php(路由)Route::get('products/','ProductsController@index');Route::get('product/{product}/', 'ProductsController@show');Route::get('product/{product}/', 'CommentController@comment');控制器放大器<?phpnamespace App\Http\Controllers;use App\Product;//use App\Comment;use Illuminate\Http\Request;class ProductsController extends Controller{    public function show (Product $product)    {        return view ('product.product') -> with (['product' => $product]);    }}評論控制器<?phpnamespace App\Http\Controllers;use App\Comment;use Illuminate\Http\Request;use Illuminate\Database\Eloquent;class CommentController extends Controller{    public function comment (){        $comments = Comment::all ();        return view ('product.product', compact ('comments'));    }我知道這可能很微不足道,但只是想知道是否有人有任何想法,因為 Laravel 的故障查找非常糟糕。有誰知道為什么這不起作用以及為什么會拋出該錯誤?
查看完整描述

3 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

僅選擇一個控制器,然后將所有必要的代碼放在上面,如下所示:


路線:


Route::get('product/{product}/', 'ProductsController@show');

控制器:


class ProductsController extends Controller

{

    public function show (Product $product)

    {

        $product  = Product::find(1);

        $comments = Comment::all();


        return view ('product.product', compact ('product', 'comments'));

    }


}


查看完整回答
反對 回復 2022-05-27
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

首先,您不能兩次使用相同的路線。


Route::get('product/{product}/', 'ProductsController@show');

Route::get('product/{product}/', 'CommentController@comment');

如果你可以這樣做:


Route::get('product/{product}/', 'ProductsController@show');

Route::get('product/{product}/comments', 'CommentController@comment');

或者簡單地保留一條路線并使用單個控制器訪問(產品和評論)。


根據您的共享視圖,它需要模型數據產品和評論集合。


查看完整回答
反對 回復 2022-05-27
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

您可以在 route.php 中定義相同的路由。但第一條路線將被忽略。


請嘗試執行以下操作。


Route::get('product/{product}/show', 'ProductsController@show');

Route::get('product/{product}/comment', 'CommentController@comment');


查看完整回答
反對 回復 2022-05-27
  • 3 回答
  • 0 關注
  • 193 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號