У меня проблемы с вызовом отношений в laravel, у меня 4 таблицы: пользователи, билеты, магазины, статусы.и у меня есть отношение @OneToMany в Users to Tickets (1 пользователь имеет много билетов).другие отношения - @OneToOne (1 билет имеет 1 магазин и статус).
Теперь у меня есть 6 билетов в моей таблице и 4 пользователя, я могу распечатать связь с 4 первыми билетами, но когда я хочучтобы позвонить в билет 5 или 6, отношения исчезают.То же самое с хранилищем и статусом. Я могу распечатать взаимосвязь, в то время как идентификатор заявки не превышает количество элементов, которые у меня есть в моей таблице.
это мои модели: Модель пользователя:
class User extends Authenticatable
{
use Notifiable, HasRoles;
protected $fillable = [
'id','name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
public function tickets()
{
return $this->hasMany(Ticket::class, 'usuario_id');
}
}
Модель билета:
class Ticket extends Model
{
protected $fillable = [
'comentarios', 'falla', 'modelo', 'no_serie', 'monto',
'usuario_id', 'status_id', 'store_id'
];
public function user()
{
return $this->belongsTo(User::class, 'id');
}
public function store()
{
return $this->hasOne(Store::class, 'id');
}
public function status()
{
return $this->hasOne(Status::class, 'id');
}
}
Модель магазина:
class Store extends Model
{
protected $table = "stores";
protected $primaryKey = 'id';
public $timestamps = false;
protected $fillable = [
'sucursal', 'dirección'
];
public function ticket()
{
return $this->belongsTo(Ticket::class, 'store_id');
}
}
Модель состояния:
class Status extends Model
{
public $timestamps = false;
protected $fillable = [
'status'
];
public function ticket()
{
return $this->belongsTo(Ticket::class, 'status_id');
}
}
Контроллер:
$tickets = Ticket::all();
return view('Admin.index', compact('tickets'));
Просмотр
@foreach($tickets as $ticket)
<li>{{ $ticket->user }}</li>
@endforeach
Результат:
Результат foreach
В представлении я вызываю все билеты ($тикеты), и для каждого тикета я печатаю взаимосвязь (пользовательская функция).Но в результате вы можете увидеть, что просто напечатайте первые 4 взаимосвязи (количество моих пользователей), если я добавлю 1 пользователя, появится взаимосвязь в 5-м билете.Та же проблема с другими таблицами (хранилище и статус).