Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.02.2015 10:01:40

Выборка из пивотной таблицы

Привет всем. Уже 4 день не могу составить правильно запрос. Нужно сделать выборку всех постов где user_id не равен нашему.
Есть 3 таблицы

users
posts
post_user (id, post_id, user_id)

Модели

PHP
class Post extends Eloquent {

    protected 
$table 'posts';
    public 
$timestamps true;

    public function 
users()
    {
        return 
$this->belongsToMany('User');
    }

}
PHP
class Users extends Eloquent {

        protected 
$table 'users';
    protected 
$hidden = array('password''remember_token');

    public function 
posts()
    {
        return 
$this->belongsToMany('Post');
    }

}

Контроллер

PHP
 public function application()

    {

        
$posts Post::find(1);
        
$user DB::table('post_user')->where('user_id''='$this->id)->lists('user_id');

        
$posts Post::whereNotIn('id'$user)->get();
        return 
View::make('applications')->with(array('posts' => $posts));


    }

Что я не так делаю? Если можно с обьяснением

PS не кидайте на [https://laravel.ru], [https://gist.github.com] читал там этого нет

Не в сети

#2 10.02.2015 13:19:28

Re: Выборка из пивотной таблицы

Adoafw пишет:

выборку всех постов где user_id не равен нашему.

Post::where('user_id', '!=', $user_id)->get();

Не в сети

#3 10.02.2015 13:23:36

Re: Выборка из пивотной таблицы

Вы уверены, что вам нужно именно belongsToMany?
Зачем вы строите массив из post_user, если user_id уже известен?

Post::whereNotIn('id', $user)->get();

Тут понимаете что делаете?

Изменено Wide (10.02.2015 13:24:24)

Не в сети

#4 10.02.2015 13:58:40

Re: Выборка из пивотной таблицы

Как вариант http://laravel.com/docs/4.2/eloquent#querying-relations

Post::whereHas('users', function($q) use ($user_id)
    {
        $q->where('user_id', '!=', $user_id);

    })->get();

Не в сети

#5 10.02.2015 15:09:19

Re: Выборка из пивотной таблицы

Сделал с использованием whereDoesntHave

Не в сети

Подвал раздела