Posted on: May 27, 2021 09:24 PM
Posted by: Renato
Views: 854
Vinculando a linha excluída - belongsTo() e withTrashed()
Digamos que temos tabela DB produtos, que está vinculada a tabela de categorias com um campo productos.category_id = categories.id, Eloquent nos ajuda a definir uma relação facilmente. Mas e se a categoria for (soft) excluída?, mas ainda precisaremos que esse relacionamento(relationship) seja retornado por motivos de histórico? Você pode usar o método withTrashed() .
O modelo Product.php deve ser semelhante a este:
// ... class Product extends Model { public function category() { return $this->belongsTo('App\Category'); } }
E então podemos usar esse relacionamento na visualização dos dados, assim:
{!! $product->category->title !!}
Mas, voltando à situação: se a categoria for excluída temporariamente (ou seja, o campo deleted_at não é nulo), então essa linha não seria retornada com a consulta. Mas você pode simplesmente adicionar withTrashed() no próprio modelo, assim:
public function category() {
return $this->belongsTo('App\Category')->withTrashed();
}
Um outro exemplo que usei foi em um model que usa tabela de usuarios.
Donate to Site
Renato
Developer