1
我有關係hasMany的問題。這是我的代碼:Laravel 5.4試圖獲得非物件的財產
在模型文件,我有:
public function aliases()
{
return $this->hasMany('App\Models\Alias');
}
在模型別名:
public function document()
{
return $this->belongsTo('App\Models\Document');
}
在Controller中,我做了一個foreach以避免集合:
$data['aliases'] = [];
$aliases = Alias::where('path', $directory)->get();
if(null != $aliases){
foreach($aliases as $alias){
$data['aliases'][] = $alias;
}
}
在視圖:
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
問題是,當我試圖讓屬性名稱或視圖中的關係文件()的另一個屬性槽:
$alias->document->name
這是工作!我雖然認爲如果你定義了其他外鍵,而不是Laravel在遷移中期望的,你不需要在關係中定義它。我錯了。謝謝羅伯特!我將數組轉換爲數組,因爲如果不是,我不能接受這個屬性:$ alias-> doc_id directely。也許還有另一種方式。 – nature