Laravel 4雄辩的双轴表
我的桌子 ModelosLaravel 4雄辩的双轴表,laravel,eloquent,Laravel,Eloquent,我的桌子 Modelos id nome段塞 marca_id Pecas id codigo modelo_peca modelo_id 美洲山核桃id produtos id 分类id codigo nome 分类 id nome 鼻涕虫 我有这些模型 class Modelo extends Eloquent { public function pecas() { return $this->belongsToMany('Peca'); } }
id
nome段塞
marca_id
Pecas
id
codigo
modelo_peca
modelo_id
美洲山核桃id
produtos
id
分类id
codigo
nome
分类
id
nome
鼻涕虫
我有这些模型
class Modelo extends Eloquent
{
public function pecas()
{
return $this->belongsToMany('Peca');
}
}
我正在尝试创建一条路线,将所有与modelo相关的产品传递到一个视图。怎么了
Route::get('/modelo/{slug?}', function($slug = null) {
if ($slug) {
$id = Modelo::where('slug', $slug)->pluck('id');
$pecas = Modelo::find($id)->pecas;
$produtos = Peca::where('id', $pecas)->get();
}
return View::make('produto.home')->with('produtos', $produtos);
使用即时加载
在我的脑海中(也跨越了语言障碍,我会尽全力)
您似乎希望所有产品(produtos
)用于特定的页面类别或其他分类法(可能是错误的,但您可以根据需要调整代码)
where()
方法需要三个参数iirc,因此第一个查询应该是$id=Modelo::where('slug','=','slug)->pull('id')代码>
这同样适用于其他where语句
完整查询:
if($slug)
{
$query = Modelo::with('pecas.produto')
->where('slug', '=', $slug)
->get();
$produtos = $query->produto;
}
return View::make('produto.home')->with('produtos', $produtos);
我在这里采取了不同的方法,急切地处理这些关系,我不是100%确定这是你想要做的事情,但是它希望能为你正确地使用你的关系提供一个基础。p>
您不需要手动获取主键并执行多个查询,请查看Laravel网站上雄辩的文档
Route::get('/modelo/{slug?}', function($slug = null) {
if ($slug) {
$id = Modelo::where('slug', $slug)->pluck('id');
$pecas = Modelo::find($id)->pecas;
$produtos = Peca::where('id', $pecas)->get();
}
return View::make('produto.home')->with('produtos', $produtos);
if($slug)
{
$query = Modelo::with('pecas.produto')
->where('slug', '=', $slug)
->get();
$produtos = $query->produto;
}
return View::make('produto.home')->with('produtos', $produtos);