2015-08-17 92 views
0

我有兩個表一個存儲資料信息和一個存儲資料圖片如何使用laravel從數據庫獲取記錄的圖像?

-table東西

stuff_id | name | detail 

-table圖像

id | stuff_id | images 

-My模型關係

-Stuffs 

namespace App\Model; 
use Illuminate\Database\Eloquent\Model; 
class Stuffs extends Model 
{ 
// A Stuff has many images 
public function image(){ 
return $this->hasMany('App\Model\image', 'stuff_id'); 
} 
} 


-Image 

namespace App\Model; 
use Illuminate\Database\Eloquent\Model; 
{ 
// images belongs to only one Stuff 
public function stuff(){ 
return $this->belongsTo('App\Model\Stuffs'); 
{ 
{ 

現在我得到一些東西的信息,並期待這樣的:

ID | Name 
1 |[July][1] 
2 |[Bona][1] 

我需要,如果我點擊這個東西的名字將進入詳細頁面的東西具有的所有圖像。

我的詳細信息頁面

@foreach($getDetails as $getDetail) 
<a rel="lightbox" data-lightbox = "gallery" href="{{URL::asset($getDetail->images)}}"> 
<img class="img-responsive" width="150" src="{{URL::asset($getDetail->images)}}"> 
</a> 
@endforeach 

我的控制器

public function Detail($id){ 
$getDetails = Image::join('Stuffs', 'stuffs.stuff_id' , '=', 'image.stuff_id') 
->find($id); 
return view('crud.more_detail', compact('getDetails')); 
} 
} 

它不工作,並得到這個錯誤

ErrorException in b5e95ef79c2c035f3a379c139e5e7ac6 line 11: 
Trying to get property of non-object (View: 
C:\wamp\www\crud\resources\views\crud\more_detail.blade.php) 

請幫助我謝謝;

+0

'more_detail.blade.php'中行號'11'是什麼? –

+0

它只是詳細名稱頁 – july77

+0

代碼@foreach($ getDetails as $ getDetail) @endforeach在該頁面 – july77

回答

0

使用關係的一個要點是您不必手動將表連接在一起。

要獲得的圖像與它的東西,你就只需要做:

$getDetails = Image::with('stuff')->find($id); 
//'stuff' is the name of the method you're using in your model 

此外,使用find()將只返回該行,其中該行的ID等於$id通過$getDetails韓元如此循環」工作。這很可能是您收到錯誤的原因。

如果你想獲得的所有圖像和他們的東西,你可以這樣做:

$getDetails = Image::with('stuff')->get(); 

希望這有助於!

+0

它沒有工作先生! – july77

+0

哪一位不工作?有沒有錯誤信息?等等 –

相關問題