Laravel — получает данные из сводной таблицы, только если она там появляется

criteria belongsToMany Alerts, и наоборот.

Они связаны через сводную таблицу — alert_criteria, Но критерии и предупреждения не обязательно должны быть в сводной таблице. Они добавляются, если соблюдены другие критерии.

Столбцы:

alert_id а также criteria_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,

Любая помощь будет принята с благодарностью.

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

Другие решения

Я решил это с помощью:

Criteria::find(Auth::user()->id)
->alerts()
->get();
0

По вопросам рекламы [email protected]