的图我有2表作为食品:检索值,并把它们在与Laravel
- Food_id(PK)
- Foodname
- 说明
- 图片
- 价格
Ans其他表是餐厅:
- RES_ID(PK)
- ResName
- 位置
我做透视表food_restaurant为:
- ID
- Food_id(FK)
- RES_ID(FK)
我想在我的view.For食品的细节,我做功能模型Food.php作为
public function restaurant()
{
return $this->belongsToMany('App\Restaurant','food_restaurant','Food_id','Res_id');
}
一同显示餐厅的位置
与其他模型Restaurant.php作为
public function food()
{
return $this->belongsToMany('App\Food','food_restaurant','Res_id','Food_id');
}
我控制器是:
class Detailscontroller extends Controller
{
public function index()
{
$Foods= Food::all();
return view('welcome', compact('Foods'));
}
public function show($Food_id)
{
$food =Food::findOrFail($Food_id);
return view('show', compact('food'));
}
}
和路线是:
Route::get('/','[email protected]');
Route::get('/{Food_id}', '[email protected]');
查看welcome.blade.php是:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
@foreach($Foods as $Food)
<p><img src="{{ asset('uploads/'.$Food->Image) }}" /><p>
<Food>
<h2>
<a href="/{{$Food->Food_id}}">{{$Food->FoodName}}
<i class="fa fa-chevron-circle-right"></i></a
</h2>
</Food>
@endforeach
</div>
</div>
@endsection
而且show.blade.php是:
@extends('layouts.app')
@section('content')
<h1 align="center">{{$food -> FoodName}}</h1>
<p><img src="{{ asset('uploads/'.$food->Image) }}" /><p>
<detail>
<h3><p>FoodDescription:</h3><h4>{{$food->Description}}</h4></p>
<h3><p>Price:</h3><h4>{{$food->Price}}</h4></p>
@foreach ($food->restaurant as $restaurant)
<h3><p>Location:</h3><h4>{{$restaurant->Location}}</p></h4>
@endforeach
@endsection
但它不显示位置给我。如何显示我的show.blade.php视图中的位置?我是laravel的新手。问题在哪里?
试着改变你的表演方法,在你的控制器,以这样的:'''$ =食品食品::与( '餐厅') - > findOrFail($ Food_id);''' – Landjea
否,不工作。给错误“调用未定义的方法Illuminate \ Database \ Query \ Builder :: restaur ant()”。 – MANI
是否通过在您的视图中使用dd($ food-> restaurant)来检查您是否获取了餐馆关系 – Parithiban