Прямо сейчас, можно получить Posts
, сначала получив User
, затем используя этот идентификатор, получив Posts
. Примечание: это не рекомендуемый способ использования Laravel с отношениями:
$user = User::find($id);
$posts = Post::where("user_id", "=", $user->id)->get();
Хотя это будет работать (если у вас была модель Post
с user_id
ключа), но правильный путь, чтобы определить отношения в моделей. Для этого он будет hasMany()
и belongsTo()
по адресу User
и Post
с уважением. Вот ваша User.php
модели класс:
class User extends Eloquent {
protected $table = "users";
public function posts(){
return $this->hasMany("Post");
}
}
И убедитесь, чтобы определить обратные в вашем Post.php
классе модели:
class Post extends Eloquent {
protected $table = "posts";
public function user(){
return $this->belongsTo("User");
}
}
Наконец, вы можете запросить эти отношения в контроллере, используя следующий:
$user = User::find($id);
$posts = $user->posts()->get();
Это также обеспечит целостность, заставив любые обновления/сбережения использовать правый ключ user_id
. Там какая-то довольно обширная документация о том, как использовать Eloquent
стиль запросов базы данных, проверить его здесь:
Laravel - Eloquent
Надежда, что помогает!
Редактировать
Чтобы передать это тем, добавьте следующие строки в ваш контроллер:
public function view_post($id){
$user = User::find($id);
$posts = $user->posts()->get();
return View::make("view")->with(array("user" => $user, "posts" => $posts));
}
Вам нужен файл в app/views
папку с именем (в данном случае) view.blade.php
, которые " echos "вся информация о пользователе и сообщениях:
<h2>User: {{ $user->id }} - {{ $user->email }}</h2>
<br/>
<h2>Posts:</h2>
@foreach($posts AS $post)
<p> {{ $post->id }}: {{ $post->content }}</p>
@endforeach
И т.д. и т. д. Примечание, у меня есть не знаю, в каких столбцах таблицы users
и posts
есть, но с использованием $user->column
или $post->column
будет отображаться содержимое этого столбца.
Вот документация Views and Responses
, которая поможет вам с этим вопросом:
Laravel - Views and Responses
Есть ли у вас какие-либо идеи о Laravel красноречивых моделях? –
Вы определили отношения Модели? http://laravel.com/docs/4.2/eloquent#relationships – Th3Alchemist
Это ОЧЕНЬ РАЗВИВАЕТСЯ в официальной документации Laravel: http: // laravel.com/docs/master/eloquent # eager-loading Вам было бы полезно прочитать его, прежде чем задавать простые вопросы. –