2017-01-22 1 views
2

Я новичок в Laravel и веб-разработке в целом.Если кнопка в методе запуска Laravel запускается в контроллере, и если да, то как

У меня есть Add to cart кнопку в shop.blade.php:

<a href="{{url('cart')}}" class="btn btn-default add-to-cart"><i class="fa fa-shopping-cart"></i>Add to cart</a> 

Тогда в web.php у меня есть:

Route::get('cart', function() 
{ 
    return View::make('pages.cart', ['active'=>'navCart']); 
}); 

Кнопка явно перенаправляет на странице корзины при нажатии.

Я пользуюсь LaravelShoppingcart, чтобы добавить товары в корзину. Чтобы добавить элемент можно использовать такой код:

Cart::add('192ao12', 'Product 1', 1, 9.99); 

То, что я на самом деле хочу, я думаю, есть некоторые функции, предположительно, в контроллере (это должно быть введено в поле зрения?), Что я могу позвонить от таких кнопок, как Add to cart, декремент «-» или приращение «+».

Ввод Cart::add в Маршрут, как показано ниже, явно неправильный, но на самом деле достигает половины того, что я хочу - продукт добавляется в корзину (я действительно не хочу, чтобы эта кнопка переместилась на страницу корзины).

Route::get('cart', function() 
{ 
    Cart::add('192ao12', 'Product 1', 1, 9.99); 
    return View::make('pages.cart', ['active'=>'navCart']); 
}); 

Итак, я думаю, я должен вызвать методы в Controller с точки зрения, но все говорят, что я не должен делать это так, что это правильный способ сделать вид, а именно кнопки, влияют на модель в Laravel?

ответ

1

Просто Определите controller сказать CartController и в этом случае создать функцию addToCart(), а затем написать код, что вы хотите.

как,

class CartController extends Controller 
{ 
    public function addToCart() 
    { 
    //Your cart related logic 
    Cart::add('192ao12', 'Product 1', 1, 9.99); 
    return View::make('pages.cart', ['active'=>'navCart']); 
    } 
} 

, а затем определить его в вашем routes/web.php как,

Route::get('cart', '[email protected]'); 
+0

Спасибо. Похоже, это решение, но я получаю сообщение об ошибке в 'routes/web.php'' FatalThrowableError в строке web.php 41: Ошибка анализа: синтаксическая ошибка, неожиданные '@', ожидающие ',' или ')'' Any идеи? Нужно ли «вводить» 'CartController' в эту строку в' web.php'' Route :: get ('/', 'PagesController @ home'); ' –

+0

Прохладный. Кажется, что это исправить, но теперь кажется, что «CartController» не знает о «Cart' Class »App \ Http \ Controllers \ Cart 'not found' –

+0

Вам нужно импортировать все классы, необходимые для корзины, т.е. ваша логика –

0

Создать метод маршрута/контроллер «AddToCart», который добавляет элемент в корзину, это, как правило, добавить товар в корзину затем перенаправить к методу корзины контроллера для отображения телеги

Смежные вопросы