Laravel - 仅在数据透视表中显示数据时才从中获取数据

时间:2014-11-07 13:35:14

标签: php laravel laravel-4 eloquent pivot-table

criteria belongsToMany Alerts,反之亦然。

它们通过数据透视表 - alert_criteria连接。但是,标准和警报不必在数据透视表中。如果符合其他标准,则会添加它们。

列是:

alert_idcriteria_id

目前,这会获得与用户相关的所有criteria

public function getIndex()
    {
        $alerts = Criteria::with('coordinate', 'alerts', 'alertsCount', 'bedrooms')
        ->where('user_id', '=', Auth::user()->id)
        ->get();

        $this->layout->content = View::make('users.alert.index', 
            array('alerts' => $alerts));
    }

我想做的是

  

获取与alerts_criteria的数据透视表中显示的用户相关的所有条件。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我相信你真的想要这样的东西:

Auth::user() // the current user...
    ->criteria() // get any related criteria
    ->has( 'alerts' ) // which have alerts
    ->get();

或者,如果您的用户与标准无关:

Criteria::whereUserId( Auth::id() ) // Criteria where user_id = Auth::id()
        ->has( 'alerts' ) // which have alerts
        ->get();

答案 1 :(得分:0)

我通过使用:

解决了这个问题
Criteria::find(Auth::user()->id)
->alerts()
->get();