Handler.php第103行中的NotFoundHttpException:

时间:2016-11-24 09:11:57

标签: laravel-5.2

我使用的是L5.2。

我正忙着尝试创建一个购物车,而且我遇到了一个我无法弄清楚它是如何发生的问题。

假设发生的事情是在我将产品添加到购物车之后,我点击了购物车链接,我想要转到另一个页面,上面写着" getCart&# 34;回应在页面上。

发生的事情是,一旦我点击购物车链接,我就会收到以下错误,如果我只是回应出来,我就不知道如何收到错误#34; getCart"

我得到的错误是

  

Handler.php第103行中的NotFoundHttpException:模型[App \ Modules \ Menus \ Models \ Menu]没有查询结果。

我的routes.php

Route::resource('/', 'OpenController');
Route::get('/{id}', 'OpenController@content');

Route::get('/add-to-cart/{id}', [
    'uses' => 'OpenController@getAddToCart',
    'as' => 'product.addToCart'
]);

Route::get('/shopping-cart', [
    'uses' => 'OpenController@getCart',
    'as' => 'product.shoppingCart'
]);

我的OpenController.php

namespace App\Modules\Open\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

use App\Modules\Menus\Models\Menu;
use App\Modules\Portfolio\Models\Portfolio;
use App\Modules\Products\Models\Product;
use App\Modules\Open\Models\Cart;
use Session;

class OpenController extends Controller
{

    public function getAddToCart(Request $request, $id){
        $product = Product::find($id);
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->add($product, $product->id);

        $request->session()->put('cart', $cart);
        return redirect()->back();
    }

    public function getCart(){
        echo "getCart";
    }
}

products.blade.php

<li>
    <a href="{{ route('product.shoppingCart') }}">
        <i class="fa fa-shopping-cart" aria-hidden="true"></i> Shopping Cart
        <span class="badge">{{ Session::has('cart') ? Session::get('cart')->totalQty : '' }}</span>
    </a>
</li>

更新:

我设法解决了这个问题,但我希望有人能帮助我。

我改变了我的路线

Route::get('/shopping-cart', [
    'uses' => 'OpenController@getCart',
    'as' => 'product.shoppingCart'
]);

Route::get('/products/shopping-cart', [
    'uses' => 'OpenController@getCart',
    'as' => 'product.shoppingCart'
]);

有人可以解释为什么它不适用于/ shopping-cart

1 个答案:

答案 0 :(得分:0)

它不会起作用,因为&#34; / products / shopping-cart&#34;是一个不同的路线&#34; / shopping-cart&#34;。 因为你打电话给路线&#34; product.shoppingCart&#34;你还必须宣布这条路线。

希望能解释清楚。