Laravel по-русски

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

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

#2 Re: Laravel 5.x » Где нужно обращаться с запросом к БД? » 19.06.2016 06:40:05

Отвечу исходя из личного опыта. Бизнес-логика связанная с конкретной моделью должна содержаться в её классе, в виде методов, для максимального упрощения работы с данной моделью в контроллерах. Но всю бизнес-логику приложения не следует пытаться вынести в модель.
А контроллер, по сути, отвечает за вызов и координацию методов моделей в зависимости от переданных параметров. Главное не делать его слишком жирным.

VitalN пишет:

Советую в сторону ОРМ посмотреть то бишь Eloquent
чтобы можно было сделать так
https://laravel.com/docs/5.2/eloquent#mass-assignment

Согласен с этим.

laravelNewbie пишет:

Но, всё таки, следующий код в контроллере является правильным:

ScheduleRelation::insert(['s_id' => $id, 'u_id' => $user->id]);
Schedule::where('id', '=', $id)->decrement('slots');

?

Лучше сделать с помощью ORM, будет примерно следующее:

Model::create(['s_id' => $id, 'u_id' => $user->id]);
$model->getByLastSlot();

#3 Re: Laravel 5.x » Как правильно рендерить шапку? » 19.06.2016 06:04:15

Для таких целей можно использовать виджеты
https://packagist.org/packages/arrilot/laravel-widgets
У виджета есть свой класс с бизнес логикой и вьюха.
Подключается виджет путём добавления кода

@widget('menu')

в нужный вам шаблон (view)
Также в него можно передавать необходимые параметры.

#5 Re: Laravel 5.x » Динамические свойства » 08.05.2016 11:35:38

won пишет:
Nogard7491 пишет:
won пишет:
php artisan ide-helper:models

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

так он вроде как для автозаполнения нужен!? с этим проблем нет

Да вы правы. Обьясните зачем вам такой механизм?

Хотелось бы сделать возможность добавления новых свойств в админке для последующего использования, похожие механизмы есть в WordPress плагин CustomFields или в Bitrix - там уже этот функционал встроен в CMS.

#6 Re: Laravel 5.x » Почему не работает авторизация? » 07.05.2016 19:01:10

А если в главную страницу добавить 'middleware' => 'web'?

Боюсь сказать глупость, но помимо всего прочего web запускает сессию, во всяком случае я использую его на всех страницах где нужно проверять авторизован ли пользователь.

И проверьте в config/session.php, чтобы домен был установлен 'domain' => 'vash-site.ru'

#7 Re: Laravel 5.x » Динамические свойства » 06.05.2016 15:49:56

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

#8 Re: Laravel 5.x » Динамические свойства » 06.05.2016 10:15:52

won пишет:
php artisan ide-helper:models

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

так он вроде как для автозаполнения нужен!? с этим проблем нет

#9 Laravel 5.x » Динамические свойства » 05.05.2016 16:00:32

Nogard7491
Ответов: 7

Здравствуйте, можно ли в laravel делать динамические свойства для модели?
Добавили свойство в таблицу и в модели его уже можно использовать. Может быть по другому такая схема как то реализуется?

#11 Re: Laravel 5.x » Получение данных для виджета » 24.02.2016 08:41:50

Я и делаю его через Node.js и Redis, и хотелось бы чтобы чат отвечал за себя, а не брал данные из контроллера страницы.
Да и дело тут даже не в чате, есть некий блок с информацией. Нужно чтобы он самостоятельно её получал, а не использовал данные из контроллера. Такое возможно сделать?

#12 Laravel 5.x » Получение данных для виджета » 23.02.2016 19:35:25

Nogard7491
Ответов: 3

Пользуясь случаем хочу поздравить всех с праздником!
Ну и собственно описание вопроса: Есть виджет чата, который подключается в нескольких шаблонах blade. Как лучше реализовать получение сообщений для чата? В контроллерах для каждой страницы это реализовывать, или есть более подходящий способ?
Была идея попробовать это реализовать в посреднике, а потом выделить все запросы в группу с этим посредником, если такое возможно.  Но очень сильно подозреваю, что сие есть извращение.

#13 Re: Laravel 5.x » Вопрос от новичка » 17.02.2016 14:22:29

Не могу нечего сказать определённого, может кто другой ответит)

#16 Re: Laravel 5.x » Исключить поля в запросе » 12.02.2016 09:36:04

А вот так не работает

User::find(1)->posts->select('id','title','description')->get()->toArray()

/** Записи пользователя */

public function posts() 
{
        return $this->hasMany('App\Models\Post');
}

#17 Re: Laravel 5.x » Исключить поля в запросе » 12.02.2016 09:24:26

Спасибо, вот правильный запрос User::find(1)->select('id','title','description')->get()->toArray()

#18 Re: Laravel 5.x » Исключить поля в запросе » 11.02.2016 23:50:33

Можно и не выводить, но не хочу большие тексты запрашивать из базы.
User::find(1)->posts->select('id','title','description')->toArray(); - ошибка, метод не найден
Это метод для прямых выборок из базы.

#19 Re: Laravel 5.x » Не могу понять какой php ставить 7 или 5? » 11.02.2016 23:07:27

я разрабатываю под 7 версией php, проблем не возникало.

#20 Laravel 5.x » Исключить поля в запросе » 11.02.2016 23:06:02

Nogard7491
Ответов: 9

Есть таблица posts с полями [id, title, description, text]. Нужно вывести все записи с первыми 3-мя полями. Как можно реализовать используя ORM, а не чистый запрос к БД?
Массив $hidden действует глобально как я понимаю, а мне нужно в рамках одного запроса.

#22 Re: Laravel 5.x » И снова авторизация » 18.01.2016 00:38:49

Нашёл решение проблемы c logout
http://stackoverflow.com/questions/3447 … ot-working
Нужно изменить AuthController

public function __construct()
{
    $this->middleware('guest', ['except' => ['logout', 'getLogout']]);
}

#23 Re: Laravel 5.x » И снова авторизация » 18.01.2016 00:04:13

Dimon945, честно говоря я не особо уверен, что это правильное решение. Сейчас у меня не работает logout. Пробую разобраться с проблемой.

#24 Re: Laravel 5.x » И снова авторизация » 17.01.2016 17:29:48

Используйте посредник web там где нужна проверка авторизации

Route::group(['middleware' => ['web']], function () {
    Route::get('/', function () {
        return Auth::check();
    });
});

#25 Laravel 5.x » Получить количество символов для ввода пароля » 17.01.2016 17:16:19

Nogard7491
Ответов: 2

Кто нибудь знает как получить количество символов для ввода пароля из AuthController?

return Validator::make($data, [
            'name' => 'required|max:255|unique:users',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|confirmed|min:6',
]);

Хочу брать отсюда значение и подставлять в атрибут input'a "maxlength".
Если получить нельзя, то как бы правильно реализовать такое.

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