Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel » работа с сессиями для реализации корзины » 08.04.2017 02:27:40

Abs

Спасибо за совет! Сам я, за это время, просмотрел несколько видео уроков, и в каждом делали корзину на loravel. Но мой сайт не состоит из одной страницы (как в уроках), в нем каркас, и виды. А значит не совпадают маршруты к контролерам и т.д. Я не понимаю, как работают разные методы, например execut, и сижу, вот изучаю маршрутизацию. До этого у меня не было понимания, что представляет из себя корзина. Оказывается есть множество способов реализации на Laravel, такие как сессии, куки, сохранение в БД. Или реализация например на JS, с отправкой на AJAX. Но главное я понял, какие шаги нужно сделать последовательно для её создания.

#2 Re: Laravel » работа с сессиями для реализации корзины » 24.03.2017 20:36:06

Abs
constb пишет:

Cart – это не модель, это сервис уровня приложения, который обеспечивает апи для работы с корзиной в коде сайта. он существует как раз для того чтобы с CartItem-ами не приходилось работать «руками». в сессии находится только идентификатор корзины, её содержимое как раз определяется записями в таблице cart_items, а модель CartItem – её представление в элоквент.

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

Спасибо за ответ. Извиняюсь за беспокойство. Я новичок в Laravel, о чем писал в первом посте. Учусь, поставил себе задачу, и пытаюсь грызть гранит науки. Как оказалось, это не такая простая задача. Еще раз спасибо, и желаю успеха в работе.

#3 Re: Laravel » работа с сессиями для реализации корзины » 24.03.2017 13:55:06

Abs
constb пишет:

зачем в маршрутах регистрировать модели? что-то и правда огородами )

Добрый день!

Я не правильно написал, регистрировать в маршрутах нужно шаблон корзины. Мне не понятен был сам механизм (цепочка) работы корзины.
Размышляя, что такое корзина - это страница (модальное окошко) на которой выводится информация из сессии. Т.е. пользователь выбрав товар - нажав на картинку (ссылку) кладет его в корзину -сессия записывается в базу (отрабатывает модель). Открывая же страничку корзины, из базы в нее вытаскиваются данные (массив данных из модели). Но Вы прислали три модели. И я не совсем понимаю назначение третьей. Cart.php, Product.php, CartItem.php - уточните пожалуйста назначение третьей модели.

#4 Re: Laravel » работа с сессиями для реализации корзины » 21.03.2017 10:37:28

Abs
constb пишет:

зачем в маршрутах регистрировать модели? что-то и правда огородами )

Действительно зачем? Я невнимателен. Не обратил внимания на подключение Eloquent. Спасибо!

#5 Re: Laravel » работа с сессиями для реализации корзины » 21.03.2017 01:32:01

Abs
Abs пишет:

Использую версию Laravel 5.2. Спасибо за помощь!

Полез в файл routes.php  и не нашел его, и вспомнил, что обновлялся до 5.4.6.

Возник вопрос, вот я попытался прописать маршруты в файле web, для: Cart.php, Product.php, CartItem.php и задумался.
Раньше я прописывал группу маршрутов контроллерам, которые делают ту или иную операцию, и вынесены они отдельно в файлы.
Например (упрощенно) файл web для Portfolio:

	Route::group(['prefix'=>'portfolios'],function() {
			
		Route::get('/',['uses'=>'PortfoliosController@execute','as'=>'portfolio']);
				
		Route::match(['get','post'],'/add',['uses'=>'PortfoliosAddController@execute','as'=>'portfoliosAdd']);
		
		Route::match(['get','post','delete'],'/edit/{portfolio}',['uses'=>'PortfoliosEditController@execute','as'=>'portfoliosEdit']);
		
	});

Соответственно в IndexController.php контролере:

 $portfolios = Portfolio::get(array('name','filter','images','price'));

В Portfolio.php:

class Portfolio extends Model
{
  	protected $fillable = ['name','filter','images','price'];
}

И для админки PortfoliosController.php, PortfoliosAddController.php, PortfoliosEditController.php с функциями добавления,редактирования,удаления.

А значит по аналогии, мне нужно зарегистрировать в web: Cart.php, Product.php, CartItem.php. Затем закомментировать не используемые мною функции, типа "проверка наличия на складе" в Cart.php. Создать кнопку корзина. Создать условие для клика мышкой на картинку, для помещения этой позиции в корзину, В корзине выставить нужное кол-во, и ... А тут моя фантазия закончилась. По идее, содержимое корзины нужно вывести в файл(.xls), и отправить заказ владельцу сайта.

Я вообще правильно рассуждаю? А то может вообще пошел огородами...

#6 Re: Laravel » работа с сессиями для реализации корзины » 20.03.2017 19:54:12

Abs

Мне действительно много из этого не нужно. Только самый простой вариант: name, quantity, price. Использую версию Laravel 5.2. Спасибо за помощь!

#7 Re: Laravel » работа с сессиями для реализации корзины » 20.03.2017 16:20:25

Abs
constb пишет:

сам разберёшься? миграции для cart_items и products сам напишешь?

Подскажите, создал файл миграции 2017_03_20_120058_create_table_products.php

    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->increments('id');
 			$table->string ('name',100);
			$table->string ('photo',100);
			$table->string ('sticker',100);
			$table->string ('description',100);
			$table->string ('properties',100);
			$table->string ('price',100);
			$table->string ('old_price',100);
			$table->string ('quantity',100);
			$table->string ('published',100);
			$table->string ('archived',100);
			$table->string ('sort_order',100);
			$table->string ('updated_by',100);
			$table->string ('updated_ip',100);
                        $table->timestamps();
        });
    }

А вот что создавать во второй миграции 2017_03_20_115759_create_table_cart_items.php, я не совсем понимаю, что-то такое?

    public function up()
    {
        Schema::create('cart_items', function (Blueprint $table) {
            $table->increments('id');
            $table->string ('name',100);
	        $table->integer('id',100);
 			$table->string ('code',100);
 			$table->integer ('user_id',100);
 			$table->integer ('product_id',100);
 			$table->integer ('quantity',100);
                        $table->timestamps();
        });
    }

Я по правильному пути иду?

#8 Re: Laravel » работа с сессиями для реализации корзины » 20.03.2017 08:41:31

Abs
constb пишет:

сам разберёшься? миграции для cart_items и products сам напишешь?

Спасибо огромное!
Мысль уловил, направление понял.
Буду пробовать сам, иначе не научусь.
Если уж совсем непонятно будет, спрошу совета.
Еще раз спасибо!

#9 Laravel » работа с сессиями для реализации корзины » 19.03.2017 21:19:36

Abs
Ответов: 13

Добрый вечер!
Я новичок в Laravel. Моего знания хватило для создания простого lending page, с картинками портфолио, и админки для размещения их на сайте.
Возникла задача, а как к ней подступиться не знаю. Создать корзину. Принцип действия корзины прост, кликнуть на картинку (витрина на сайте), картинка помещается в корзину (т.е. формируется заказ), и отправляется файл (например excel) владельцу сайта.
Я понимаю, что это работа с сессиями. То есть информация которая должна находится в корзине - записывается в сессию и хранится там до того момента как нужно корзину очистить. При этом что хранить в сессии - это уже зависит от функционала, как правило это идентификатор необходимого товара. Вот только как и с чего начать в Laravel не знаю. Может у кого то есть пример похожего кода?

#11 Re: Laravel 5.x » Вышла версия Laravel 5.4 » 28.01.2017 14:58:49

Abs

Спасибо. Но хотелось бы узнать существенны отличия или нет, и стоит переходить, или нет?

#12 Laravel 5.x » Вышла версия Laravel 5.4 » 28.01.2017 14:29:22

Abs
Ответов: 5

Я новенький тут, изучаю по урокам версии 5.2 и создаю проект на 5.3. Но вот сегодня выяснил, что вышла версия 5.4
Знатоки, подскажите, в чем отличие 5.3. от 5.4 версиях? И есть смысл переделать в новой версии, пака еще проект сырой?

Подвал раздела