Laravel 5.6 – Использование функций модели в ModelFactoryPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 5.6 – Использование функций модели в ModelFactory

Сообщение Anonymous »

Я работаю с Laravel 5.6 и столкнулся со странной проблемой при расширении функциональности моего проекта.

Сейчас мне нужно создать два новых модели: заказ и товар. Было довольно легко заполнить таблицу items фиктивными данными с помощью Faker и Laravel Factory/Seeders. Самая большая проблема возникает при работе с моделью заказа.

Этот малыш связан с компанией с внешним ключом с именем Company_id и пользователя с внешним ключом с именем Sell_id. Поле компании в порядке, проблема связана с моим идентификатором продавца

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

Чтобы получить все пользователи, «связанные» с моей компанией, я создал следующую функцию в своей компании модель:

Код: Выделить всё

public function users()
{
$roles = $this->roles;
$users = [];
foreach ($roles as $role) {
foreach ($role->users as $user) {
$user->makeHidden(['pivot']);
array_push($users, $user);
}
}

$users = array_unique_objects($users);
return $users;
}
Кстати: я использую laravel-permissions, библиотеку, созданную Spatie.

Эта функция получает каждую роль от компании, а затем передает ее массиву пользователей.

Этот пользовательский помощник: array_unique_objects отслеживает любого повторяющегося пользователя в моем массиве и удаляет их.

Эта функция работает, потому что я тестировал ее на нескольких контроллерах и знаю, что с ней нет проблем. В любом случае мой OrderFactory.php выглядит так:

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/52120490/laravel-5-6-using-model-functions-in-modelfactory[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»