Как написать код элегантнее? Laravel

120
01 декабря 2019, 03:50

Как в Laravel средствами внутренних функций написать этот код более элегантнее?

$contents_list = Content::get();
$contents = [];
foreach($contents_list as $content)
{
    $contents[$content->slug] = $content->content;
}
Answer 1

Возможно, что-то вроде такого:

$contents = Content::lists('slug', 'content');
  1. Советую не использовать Snake_case.
  2. Называйте переменные через CamelCase.
  3. Ознакомьтесь со стандартами PSR.
Answer 2

Как вариант:

$contents = Content::pluck('content', 'slug')->toArray();
Answer 3

Если Content - это модель, то все просто:

// Получить все записи и задать ключи slug
$contentList = Content::all()->keyBy('slug');
// Получить записи по условию и  задать ключи коллекции slug
$contentList = Content::where(...)/*->orWhere() ... тут используешь доступные методы query builder'а*/->get()->keyBy('slug');
Answer 4

В PHP 7 foreach не использует внутренний указатель массива, т.е. работает с дубликатом.

$contents_list = Content::get();
foreach($contents_list as $content)
{
    $contents_list[$content->slug] = $content->content;
}
READ ALSO
Замена синонимов по шаблону PHP

Замена синонимов по шаблону PHP

Есть ряд синонимов, которые заменяются на нужные словоформы:

118
Почему разная длина пароля?

Почему разная длина пароля?

Формирую пароль:

140
Как передать сумму из калькулятора в письмо формы?

Как передать сумму из калькулятора в письмо формы?

Есть форма с инпутамиЭто калькулятор

141
PHP Разместить изображения на A4

PHP Разместить изображения на A4

Есть изображения одного размера вpng Как можно по средствам PHP реализовать размещение этих изображений на нескольких A4?

97