不允许的方法 - Laravel 4
Method not allowed - Laravel 4
我正在开发 Laravel 4 应用程序,并且刚刚将其部署在免费主机上。问题是我的 POST 路由在那里不工作,它们因 "Method not allowed" 异常而崩溃。相同的路线在我的本地机器上运行良好。请给我一些关于这里可能发生的事情的笑话?
更新:
我是这样称呼路线的:
$.ajax({
method: "POST",
url: "/store/addToCart/" + phone.id(),
contentType: "application/json; charset=utf-8"
}).done(function(returnedData) {
window.location = "/";
});
这是我的路线:
Route::post('/store/addToCart/{id}', 'CartProductController@addToCart');
这是我的控制器:
public function addToCart($productId) {
$product = Product::where('id', '=', $productId)->first();
//Session::flush();
if( null !== Session::get('cart') ) {
$cartId = Session::get('cart');
$products_count = Session::get('products_amount')[0];
$amount = Session::get('amount')[0];
$cartProduct = CartProduct::create(['cart_id' => $cartId[0],
'product_id' => $productId,
'product_cost' => $product->price_bgn,
'product_qty' => 1
]);
if( isset($cartProduct) ){
$products_count++;
$amount += $product->price_bgn;
}
Session::push('cart', $cartId);
Session::forget('products_amount');
Session::push('products_amount', $products_count);
Session::forget('amount');
Session::push('amount', $amount);
} else {
$products_count = 0;
$amount = 0;
$cart = Cart::create(['status' => 'НОВА',
'cost' => $product->price_bgn
]);
$cartProduct = CartProduct::create(['cart_id' => $cart->id,
'product_id' => $productId,
'product_cost' => $product->price_bgn,
'product_qty' => 1
]);
if( isset($cartProduct) ) {
$products_count++;
$amount = $product->price_bgn;
}
Session::push('cart', $cart->id);
Session::forget('products_amount');
Session::push('products_amount', $products_count);
Session::forget('amount');
Session::push('amount', $amount);
}
}
这在我的本地机器上工作,但在我的主机上它因 "Method not allowed" 而崩溃。
如果同一条路线有两条路线,则需要为它们命名。控制器和方法无关紧要,它们可以不同也可以相同。
Route::post('/store/addToCart/{id}', [ 'as' => 'addToCart.post', 'uses' => 'YourController@postMethod' ]);
Route::get('/store/addToCart/{id}', [ 'as' => 'addToCart.get', 'uses' => 'YourController@editMethod' ]);
我正在开发 Laravel 4 应用程序,并且刚刚将其部署在免费主机上。问题是我的 POST 路由在那里不工作,它们因 "Method not allowed" 异常而崩溃。相同的路线在我的本地机器上运行良好。请给我一些关于这里可能发生的事情的笑话?
更新:
我是这样称呼路线的:
$.ajax({
method: "POST",
url: "/store/addToCart/" + phone.id(),
contentType: "application/json; charset=utf-8"
}).done(function(returnedData) {
window.location = "/";
});
这是我的路线:
Route::post('/store/addToCart/{id}', 'CartProductController@addToCart');
这是我的控制器:
public function addToCart($productId) {
$product = Product::where('id', '=', $productId)->first();
//Session::flush();
if( null !== Session::get('cart') ) {
$cartId = Session::get('cart');
$products_count = Session::get('products_amount')[0];
$amount = Session::get('amount')[0];
$cartProduct = CartProduct::create(['cart_id' => $cartId[0],
'product_id' => $productId,
'product_cost' => $product->price_bgn,
'product_qty' => 1
]);
if( isset($cartProduct) ){
$products_count++;
$amount += $product->price_bgn;
}
Session::push('cart', $cartId);
Session::forget('products_amount');
Session::push('products_amount', $products_count);
Session::forget('amount');
Session::push('amount', $amount);
} else {
$products_count = 0;
$amount = 0;
$cart = Cart::create(['status' => 'НОВА',
'cost' => $product->price_bgn
]);
$cartProduct = CartProduct::create(['cart_id' => $cart->id,
'product_id' => $productId,
'product_cost' => $product->price_bgn,
'product_qty' => 1
]);
if( isset($cartProduct) ) {
$products_count++;
$amount = $product->price_bgn;
}
Session::push('cart', $cart->id);
Session::forget('products_amount');
Session::push('products_amount', $products_count);
Session::forget('amount');
Session::push('amount', $amount);
}
}
这在我的本地机器上工作,但在我的主机上它因 "Method not allowed" 而崩溃。
如果同一条路线有两条路线,则需要为它们命名。控制器和方法无关紧要,它们可以不同也可以相同。
Route::post('/store/addToCart/{id}', [ 'as' => 'addToCart.post', 'uses' => 'YourController@postMethod' ]);
Route::get('/store/addToCart/{id}', [ 'as' => 'addToCart.get', 'uses' => 'YourController@editMethod' ]);