Size: a a a

Laravel для начинающих

2021 February 07

D

DK in Laravel для начинающих
Ivan
Я сейчас смотрю в документацию, и вижу что там только с моделями работают. А если мне надо проверить данные полученные из реквеста? Я могу так сделать?
ты можешь передавать данные в гейты
источник

I

Ivan in Laravel для начинающих
DK
ты можешь передавать данные в гейты
Посмотрю, спасибо. 👍
источник

AH

Andrey Helldar in Laravel для начинающих
vladimir
belongsTo имеет отношение к pivot’у? Это же инверсия hasOne.
hasOne:
Relation: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php#L70-L87
Object: https://github.com/laravel/framework/blob/2ecc0b484aaf5aa356f799f629dde7242e56084f/src/Illuminate/Database/Eloquent/Relations/HasOne.php

belongsTo:
Relation: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php#L184-L219
Object: https://github.com/laravel/framework/blob/2ecc0b484aaf5aa356f799f629dde7242e56084f/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php

На практике часто сталкиваюсь с тем, что релейшен belongsTo, даже с явно указанными именами колонок, не получает запись из базы при том, что hasOne срабатывает.

Из последнего: есть две модели: Package и Activity. Вторая содержит колонку package_id.
Из модели Activity нужно получить инстанс Package. Скажешь "укажи $this->belongsTo(Package::class)"? А вот нет - всегда вернётся null. Чтобы сработала связь, нужно указать $this->hasOne(Package::class, 'id', 'package_id');
источник

к

коля in Laravel для начинающих
как проверить  вернулся ли тот класс, что мне нужен if($data == тотКласс)
источник

AH

Andrey Helldar in Laravel для начинающих
коля
как проверить  вернулся ли тот класс, что мне нужен if($data == тотКласс)
if ($data instanceOf NeedClass)
источник

к

коля in Laravel для начинающих
спасибо
источник

AH

Andrey Helldar in Laravel для начинающих
коля
как проверить  вернулся ли тот класс, что мне нужен if($data == тотКласс)
Это для "разовой акции", так сказать.
Если нужно сделать выбор, то можно так:

switch (get_class($data)) {
   case FooClass::class:
       return /* ... */;

   case BarClass::class:
       return /* ... */;

   default:
       return /* ... */;
}
источник

𝕱

𝕱𝖎𝖗𝖉𝖆𝖛𝖘⁹⁹... in Laravel для начинающих
Меня вот одна штука интересует, как ларавел распознает Классы, вот например в роутах

Route::get('/', 'HomeController@index');

Как он поймет что надо ссылаться именно на тот класс?
источник

AH

Andrey Helldar in Laravel для начинающих
𝕱𝖎𝖗𝖉𝖆𝖛𝖘⁹⁹
Меня вот одна штука интересует, как ларавел распознает Классы, вот например в роутах

Route::get('/', 'HomeController@index');

Как он поймет что надо ссылаться именно на тот класс?
источник

И

Илья in Laravel для начинающих
Гайз, можно ли в файле конфига дернуть значение по ключу из этого же файла?
источник

И

Илья in Laravel для начинающих
Если без создания переменной
источник

AH

Andrey Helldar in Laravel для начинающих
Илья
Гайз, можно ли в файле конфига дернуть значение по ключу из этого же файла?
Нет. Ошибка будет при кэшировании конфигов
источник

И

Илья in Laravel для начинающих
Andrey Helldar
Нет. Ошибка будет при кэшировании конфигов
ок, спасибо. Какое тогда решение лучше? Нормально ли ссылаться вообще в конфиге на значения из этого же конфига?
источник

AH

Andrey Helldar in Laravel для начинающих
Илья
ок, спасибо. Какое тогда решение лучше? Нормально ли ссылаться вообще в конфиге на значения из этого же конфига?
Нет, не нормально. Конфиг должен исключать дублирование кода, для этого переменные в него и вынесены. Если в случае когда нужно в разных местах конфига указать одно значение (логические условия разные), то эту переменную следует вынести в .env и опрашивать её. Например, env('MY_VARIABLE')
источник

𝕱

𝕱𝖎𝖗𝖉𝖆𝖛𝖘⁹⁹... in Laravel для начинающих
Я это знаю, вот 'HomeController@index' это string, по какой функции можно получить Класс по строке?
источник

𝕱

𝕱𝖎𝖗𝖉𝖆𝖛𝖘⁹⁹... in Laravel для начинающих
Никак не могу додуматься
источник

И

Илья in Laravel для начинающих
Andrey Helldar
Нет, не нормально. Конфиг должен исключать дублирование кода, для этого переменные в него и вынесены. Если в случае когда нужно в разных местах конфига указать одно значение (логические условия разные), то эту переменную следует вынести в .env и опрашивать её. Например, env('MY_VARIABLE')
да там инфа хранится по типу номер телефона, условно. Такое в env не хочется ложить, мне кажется там ему не место (в конфигах как бы тоже, знаю, но все же..)
источник

AH

Andrey Helldar in Laravel для начинающих
𝕱𝖎𝖗𝖉𝖆𝖛𝖘⁹⁹
Я это знаю, вот 'HomeController@index' это string, по какой функции можно получить Класс по строке?
Ответ на вопрос: https://t.me/laravel_web/473303
источник

AH

Andrey Helldar in Laravel для начинающих
Илья
да там инфа хранится по типу номер телефона, условно. Такое в env не хочется ложить, мне кажется там ему не место (в конфигах как бы тоже, знаю, но все же..)
Номер телефона точно не должен вообще в коде храниться и, тем более, в репозитории. Так что ему 100% место только в env
источник

𝕱

𝕱𝖎𝖗𝖉𝖆𝖛𝖘⁹⁹... in Laravel для начинающих
Если еще глубже посмотреть, там как устроена?
источник