Laravel по-русски

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

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

#26 Re: Laravel 4 » Связи » 13.11.2014 12:48:59

Однако ,если Вам нужны только id комментариев, то не проще ли идти от них:

$comments_ids = Comment::whereIn('post_id', $posts_ids)->lists('id');

#27 Re: Laravel 4 » Связи » 13.11.2014 12:47:21

А, у вас n:m... Тут в одну строку я что-т не придумаю как сделать. Вот на ум приходит такое:

$posts = Post::with('comments')->get();
$posts->comments_ids = [];
$posts->each(function($post) use ($posts){ $posts->comments_ids[] = $posts->comments->lists('id');});

dd($posts->comments_ids );

#30 Re: Laravel 4 » Eav » 12.11.2014 11:33:10

Вот и я о том же - нужно искать решение по задаче. Оно вообще может быть простым, если реализовать тот минимум, что необходим и своими руками... wink

#31 Re: Laravel 4 » запись данных из формы в бд » 12.11.2014 10:24:43

Поставьте проверку на получения массива данных от формы по полю статус. А то у Вас передаётся строка, уверен.

{{ Form::select('status[]', Polis::$status,null,array('class'=> 'form-control', 'multiple' => true)) }}

#32 Re: Laravel 4 » Eav » 12.11.2014 10:22:08

Ну, я на самом деле понял чуть более широко. wink Я думал, что у вас разные свойства для разных объектов и разные значения этих свойств могут быть (как в Яндекс маркете, паример: типов продуктов - бесконечность, свойств - бесконечность, связи у всех объектов - многие-ко-многим).

При подходе, что свойства и типы конечны - всё упрощается донельзя! Просто отображаете все свойства в форме и всё. Создавайте объекты последовательно, в соответствии со связями (сначала пациент, потом его атрибуты). Валидировать же желательно всё сразу, чтобы не было проблем с тем, что один объект создан, а на втором всё крашится (либо делать обработку и подстановку идентификаторов в случае сохранения чего-то).

Если нравится пакет от каталиста - возьмите его. Задача в целом достаточно разносторонняя и зачастую требует индивидуального подхода, ибо антипаттерн. То, как оно должно работать в том или ином случае предусмотреть, имхо, сложно. Сделать же чисто один из нескольких вариантов реализации - не принесёт славы...

Вот, посмотрите вот эту темку: https://laracasts.com/discuss/channels/ … -eav-model
Там и человек есть, который ведёт работу над подобным пакетом...

#33 Re: Laravel 4 » Eav » 12.11.2014 08:48:26

Ну, судя по всему, Вы всё правильно расписали. Вам интересно, как из этого сделать форму для заполнения свойств, отображать данные, формировать фильтр или ещё что? Какая именно проблема у Вас?

Если речь идёт о форме, то возьмите плагинчик типа select2 и сделайте typeahead поиск по свойствам + создание нового свойства, если не найдено. Тип поля - сделайте простой select для выбора значений (можно сделать и chain select на поле выбора названия свойства от типа). Значение свойства вводите в инпут, связанный с этим инпутом. Такую связку (поле выбора типа, ввода названия свойства + его значения) сделайте паттерном, который будет добавляться по нажатию кнопочки "добавить свойство". В итоге, когда происходит сохранение, то пробегаетесь по всем свойствам, сохраняете их и связываете с редактируемым объектом.

Когда отображаете данные, то ищите объект и загружаете его свойства - тут всё просто: пользуйте with(''). Тип поля у вас уже зафиксирован - можно использовать его, если требуется.

С фильтром тоже всё относительно просто: выводите все возможные связки свойств и значений. Тип поля для формирования фильтра у вас имеется...

Задача, на самом деле, для всякого рода e-commerce рядовая (как для формирвоании данных, так и для их хранения). Какого-то механизма для реализации всего этого из коробки можно поискать, но мне кажется разве что в разрозненном виде всё - придётся всё равно собирать. А раз так, то, как мне кажется, полезней будет собрать самому: будет понятней, как оно работает и проще будет поддерживать...

#34 Re: Laravel 4 » Eav » 11.11.2014 17:10:02

Создаёте все нужные модели, прописываете в них отношения друг с другом, строите нужные запросы. Рядовая задача. smile

Или в чём-то конкретном вопрос?

#36 Re: Laravel 4 » Не работает авторизация » 08.11.2014 19:08:53

Вполне возможно, что у вас двойное хэширование. При авторизации хэшировать не нужно - нужно только передавать пароль. Класс авторизации уже захэширует при проверке.

#37 Re: Laravel 4 » Не работает авторизация » 08.11.2014 17:56:18

Смотрите в сторону пароля. Как и где он у Вас хэшируется и хэшируется ли вообще? По хорошему, реализовать хэширование в mutator и проверить, что нигде больше не пользуется хэширование строки перед засовыванием в базу...

#38 Re: Laravel 4 » Несколько проектов на локальной машине » 07.11.2014 11:11:55

Что, собственно, и сделает Вам Homestead Vagrant без траты Вашего времени... wink

#39 Re: Laravel 4 » Несколько проектов на локальной машине » 07.11.2014 10:41:16

DimNS пишет:

Ага, про это читал. К сожалению не вариант. Нужен простой способ, редактировать сразу 3-5-10 проектов.

Так нет проблем - Вам в пользование предоставлен виртуальный сервер, который без заморочек поднимается с любым количеством проектов одновременно, плюс без танцев с настройками веб сервера...

#40 Re: Laravel 4 » Запрос » 07.11.2014 09:53:06

Рад был помочь.
По поводу мануала - правильное решение! Не стыдитесь читать мануал в первую очередь - зачастую там есть ответы на 85% вопросов. Если же ответ на вопрос не находится и не получается его самому решить, заходите в чат - там могут ответить быстрее и в большем объёме (порой даже кейс рассмотрят и дадут совет)...

#41 Re: Laravel 4 » Запрос » 07.11.2014 09:13:01

DB:raw() используют для работы с выражениями.

$datefilter = DB::select("SELECT * FROM `contacts` WHERE ".DB::raw('DATE(`created_at`)')." BETWEEN ? AND ?", array('2013-01-08', '2014-12-10'));

Мануал

#43 Re: Laravel 4 » Запрос » 06.11.2014 15:37:58

$contacts = Contacts::whereBetween('created_at', ['2013-01-08', '2014-12-10']);

Мануал

#45 Re: Laravel 4 » Хранение JSON строк в БД. Обсуждение » 28.10.2014 16:41:06

Вопрос нагрузки на БД решаем как технологически (кэширование, распределение нагрузки по разным серверам и проч), так и с точки зрения взаимодействия пользователя с ресурсом (например, лоадить комменты по требованию - при достижения конца ограниченного списка, infinite scroll, etc).

При этом, если потребуется работать с этими данными в дальнейшем, то при такой нормализации придётся либо смириться с потерей старых данных, либо извращаться с работой с таким форматом, что в любом случае приведёт к геморрою (либо для заказчика, либо для разработчика).

#46 Re: Laravel 4 » Хранение JSON строк в БД. Обсуждение » 28.10.2014 15:05:01

При наличии кэширования, хранение данных в таком виде выйдет потом боком. Экономите на собственных нервах и времени...

#48 Re: Laravel 4 » Получить последнюю запись из таблицы » 12.10.2014 14:14:53

Если есть автоинкремент, то обратной сортировкой по id.

#50 Re: Laravel 4 » Не могу создать фасад » 10.10.2014 21:55:05

Ну, если Вы правильно заполнили конфиг для workbench, то в composer.json всё правильно пропишется. Нужно будет только придерживаться именования и namespace'ов. И тогда должно быть счастье.

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