Laravel 4雄辩的双轴表

Laravel 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'); } }

我的桌子

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');
   }

}



我正在尝试创建一条路线,将所有与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);