Ich habe ein Problem mit einer Beziehung hasMany. Dies ist mein Code:Laravel 5.4 Versuch, die Eigenschaft von Nicht-Objekt zu bekommen
Im Modell Dokument, ich habe:
public function aliases()
{
return $this->hasMany('App\Models\Alias');
}
In Modell Alias:
public function document()
{
return $this->belongsTo('App\Models\Document');
}
im Controller habe ich eine foreach macht eine Sammlung zu vermeiden, :
$data['aliases'] = [];
$aliases = Alias::where('path', $directory)->get();
if(null != $aliases){
foreach($aliases as $alias){
$data['aliases'][] = $alias;
}
}
Nach Ansicht:
if(isset($data['aliases']))
@foreach($data['aliases'] as $alias)
<tr>
<td>{!! HTML::image('images/panel/icons/alias.svg', '', array('class' => 'icons_type')) !!}</td>
<td><a href="{{ route('documents.show', '', $alias->doc_id) }}">{!! $alias->document->name !!}</a></td>
<td>{{--{!! date('d-m-Y', strtotime($alias->document->date)) !!}--}}</td>
<td>{{--{!! $alias->document->class !!}--}}</td>
</tr>
@endforeach
@endif
Das Problem ist, wenn ich versuche, den Eigenschaftsnamen oder eine andere Eigenschaft Trog Beziehung Dokument() in der Ansicht zu erhalten:
$alias->document->name
Es ist Arbeit! Wenn Sie jedoch einen anderen Fremdschlüssel definiert haben, den Laravel in den Migrationen erwartet hat, müssen Sie ihn nicht in der Beziehung definieren. Ich habe mich geirrt. Danke Robert! Ich konvertiere die Sammlung in ein Array, denn wenn nicht, könnte ich die Eigenschaft nicht nehmen: $ alias-> doc_id direkt. Vielleicht gibt es einen anderen Weg. – nature