我尝试为网站做这个,但我的'hotel'表有'id'和'hotel_id'列。我听说eloquent在定义关系时将_id作为主键识别关联的表名。我如何定义与酒店评论的关系?我在我的酒店模特中试过这个
public function comments() { return $this->hasMany(Comments::class, 'hotel_id') }
这是我的页面控制器
public function hotelPage($hotel_id)
{
$hotels = Hotel::select(
'hotel.hotel_id'
,'hotel.name'
,'hotel.photo_url'
,'hotel.address'
,'hotel.desc_en'
//,'hotel.hotel_url'
,DB::raw("(CASE WHEN
COALESCE(hotel.hotel_url,'')!='' THEN
LOWER(CONCAT(hotel.hotel_url,'?aid=*******'))
ELSE
CONCAT(hotel.hotel_url,'http://www.example.com/?aid=*******')
END)
as hotel_url"))
->where('hotel.hotel_id',$hotel_id)
->get();
return view('hotel.hotelPage', ['hotels' => $hotels]);
}
当我加载视图时
@foreach($hotels->comments as $comment) {{$comment->body}} @endforeach
我收到错误“此集合实例上不存在Property [comments] ./ / /hotelPage.blade.php”
请帮忙,我正在使用laravel 5.4