我一直在關注Laracasts項目 - 傳單,並且已經結束了本系列中當前的視頻。我決定自己去擴展應用程序。嘗試顯示關係數據時出錯
我試圖在主頁上顯示最新的3張傳單(或在我的情況下,分類),以及圖像。
我已經能夠拉出最後3個條目並在主頁上顯示它們,但我一直試圖按照相同的方法在分類頁面上顯示圖像,主頁。
這是我用過的代碼。
分類型號片段:
<?php
namespace App;
use DB;
use Illuminate\Database\Eloquent\Model;
class classified extends Model
{
...
public function photos()
{
return $this->hasMany('App\classified_photo');
}
...
public static function getLatestClassifeds()
{
return DB::table('classifieds')
->select('ad_title','description')
->orderBy('created_at','desc')
->take(3)
->get();
}
...
首頁控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Requests\classifiedRequest;
use App\Http\Controllers\Controller;
use App\classified;
use App\classified_photo;
class HomeController extends Controller
{
public function show()
{
$classifieds = classified::getLatestClassifeds();
return view('pages.home', compact('classifieds'));
}
}
景觀:
@foreach($classifieds as $classified)
<div class="col-xs-6 col-sm-4">
<div class="col-xs-12">
@if($classified->photos)
@foreach($classified->photos as $photo)
<img src="/{{$photo->thumbnail_path}}" class="img-responsive">
@endforeach
@endif
</div>
<div class="col-xs-12">
<div class="classified-desc">
<h2>{{$classified->ad_title}}</h2>
<p>{{$classified->description}}</p>
</div>
</div>
<div class="col-xs-12">
<div class="btn-group btn-group-justified" role="group" aria-label="...">
<div class="btn-group" role="group">
<button type="button" class="btn btn-default">Left</button>
</div>
<div class="btn-group" role="group">
<button type="button" class="btn btn-default">Right</button>
</div>
</div>
</div>
</div>
@endforeach
這段代碼,當我嘗試查看主頁返回此錯誤:
Undefined property: stdClass::$photos (View: /var/www/html/barrys-bikes.dev/resources/views/pages/home.blade.php)
正如我所說,展示3個分類廣告的效果很好,只是這個問題試圖爲每個分類拉一張圖片。
什麼應該在' - >照片'對象?它沒有在任何地方定義。 – Siper
剛剛編輯帖子,現在包括位於分類模型中的photos()函數。 –