Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Привет всем. Уже 4 день не могу составить правильно запрос. Нужно сделать выборку всех постов где user_id не равен нашему.
Есть 3 таблицы
users
posts
post_user (id, post_id, user_id)
class Post extends Eloquent {
protected $table = 'posts';
public $timestamps = true;
public function users()
{
return $this->belongsToMany('User');
}
}
class Users extends Eloquent {
protected $table = 'users';
protected $hidden = array('password', 'remember_token');
public function posts()
{
return $this->belongsToMany('Post');
}
}
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] читал там этого нет
Не в сети
выборку всех постов где user_id не равен нашему.
Post::where('user_id', '!=', $user_id)->get();
Не в сети
Вы уверены, что вам нужно именно belongsToMany?
Зачем вы строите массив из post_user, если user_id уже известен?
Post::whereNotIn('id', $user)->get();
Тут понимаете что делаете?
Изменено Wide (10.02.2015 13:24:24)
Не в сети
Как вариант http://laravel.com/docs/4.2/eloquent#querying-relations
Post::whereHas('users', function($q) use ($user_id)
{
$q->where('user_id', '!=', $user_id);
})->get();
Не в сети
Не в сети
Страницы 1