У меня есть связи hasMany y belongsTo
, когда я пробую печатать их очевидно, я соглашаюсь на модель Усер таким образом.
У меня есть две Модели, ExperienciaLaboral и Users,
Модель Усер
public function expLaboral()
{
return $this->belongsTo(ExperienciaLaboral::class);
}
и Модель Эксперьенсиалабораль
public function user()
{
return $this->belongsTo(User::class);
}
С этим он позволяет мне соглашаться таким образом
auth()->user()->expLaboral()->pluck('Empresa')->implode(' ');
Но поскольку у пользователя может быть большой Опыт работы, захотев напечатать это в таблице com implode
хороший очевидный он соединяется совсем и я хотел бы знать, есть ли какой-то способ печатать только весь Опыт работы без необходимости Implode
Ты показываешь работать с одной relaciГіn 1:N между моделью User
и моделью ExperienciaLaboral
, следовательно deberГ-схвати исправлять следующее:
User
у тебя должен быть один mГ©todo названный expLaborales()
таким образом: CГіdigo
class User extends Model
{
public function expLaborales()
{
return $this->hasMany(ExperienciaLaboral::class);
}
}
ExperienciaLaboral
один mГ©todo названный user()
asГ-: CГіdigo
class ExperienciaLaboral extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
}
то, что я сделал fuГ©:
expLaborales()
благодаря тому, что мы показываем, что у пользователя есть много реестров трудового опыта, тогда это должно идти во множественном числе. user()
в модели ExperienciaLaboral
благодаря тому, что aquГ - мы показываем, что несколько трудового опыта принадлежит пользователю. Последующие ....
Сейчас в драйвере, который мы принимали бы, называется: UserController.php
мы делаем консультацию asГ-:
$datos = User::with('expLaborales')->get();
то, что я сделал fuГ©:
eager loading
загрузил все связи модели User
моделью ExperienciaLaboral
в travГ©s mГ©todo expLaborales()
reciГ©n созданный Следующее, что я делаю, состоит в виде в том, чтобы повторять ее colecciГіn, который предыдущая консультация возвращает мне таким образом:
@foreach($datos as $data)
{{ $data->name }}
@foreach($data->expLaborales as $expLaboral)
{{ $expLaboral->nombreExperienciaLaboral }}
@endforeach
@endforeach
foreach()
мы это используем, чтобы пробегать данные модели User
, которая возвратила нам консультацию foreach
, это используем, чтобы пробегать данные, которых нам возвратил mГ©todo expLaborales()
, которые связаны моделью ExperienciaLaboral
CГіdigo
{{ $expLaboral->nombreExperienciaLaboral }}
только меняет nombreExperienciaLaboral
по имени соответствующей колонны.
Важно: Чтобы работать со связями, которые предлагает Laravel, ты должен использовать их mГ©todos для, которые он размещает этого и особенно, если ты работаешь с одной relaciГіn 1:N использует
eager loading
, чтобы делать честолюбивый груз из главной модели с Вашими связанными реестрами.
Ссылок