我使用的是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
答案 0 :(得分:0)
它不会起作用,因为&#34; / products / shopping-cart&#34;是一个不同的路线&#34; / shopping-cart&#34;。 因为你打电话给路线&#34; product.shoppingCart&#34;你还必须宣布这条路线。
希望能解释清楚。