Мне лучше использовать вспомогательную функцию session () или collect () в Laravel 5.7? - PullRequest
0 голосов
/ 14 марта 2019

Я сохранил данные своего массива в сеансе следующим образом.

session(['my_key' => ['car' => 123, 'motor' => 45, 'boat' => 678]]);

Чтобы получить ключи, я мог бы сделать следующее:

$car_key = session('my_key.car');
$motor_key = session('my_key.motor');
$boat_key = session('my_key.boat');

Или я могу сделать следующее:

$my_keys = session('my_key');

$car_key = collect($my_keys)->get('car');
$motor_key = collect($my_keys)->get('motor');
$boat_key = collect($my_keys)->get('boat');

Я не знаю, как session() и collect()->get() работают с array.В этом случае один подход лучше другого?Или это не имеет большого значения, даже сессия хранит массив с большими данными?

Ответы [ 2 ]

3 голосов
/ 14 марта 2019

collect() помощник используется для создания коллекции. Вторым способом вы создаете три разные коллекции, связывая одни и те же данные коллекции. И тогда вы получите данные по ключу из каждой коллекции. Кажется, что colde избыточен и не используется так, как его следует использовать.

Используйте помощник session()

0 голосов
/ 14 марта 2019

Это зависит.

Если вы хотите использовать методы, которые доступны только в коллекциях, это будет вполне приемлемый способ сделать это. Более простой подход будет использовать:

$myCollection = collect(session('my_key'));

Таким образом, вы можете просто использовать $myCollection->get('car') и т. Д. Вместо создания нескольких коллекций.

Если, однако, вы просто хотите получить значение и довольны массивом, вы можете просто использовать помощник session() и вернуть данные как обычно.

...