gpt4 book ai didi

php - 如何使用 Laravel 中的帖子查询用户

转载 作者:行者123 更新时间:2023-12-03 15:46:48 25 4
gpt4 key购买 nike

我是 Laravel 的新手。我想显示所有帖子,包括发布帖子的用户。我有一个简单的查询,它显示所有帖子,并使用帖子 ID 显示选定的帖子。

public function view_post($id)
{
$post = User::find($id);

dd($post);

}

这工作得很好,但我想与发布帖子的用户一起显示所有帖子。我怎样才能以正确的方式做到这一点?

最佳答案

现在,有可能获得 Posts首先获得 User然后使用该 ID,获取 Posts .注意:这不是将 Laravel 用于关系的推荐方式:

$user = User::find($id);
$posts = Post::where("user_id", "=", $user->id)->get();

虽然这会起作用(假设您有一个 Post 的模型和一个 user_id 键),但正确的方法是定义模型中的关系。对于这个,它将是 hasMany()belongsTo()UserPost尊敬。这是您的 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");
}
}

最后,您可以使用以下命令在 Controller 中查询此关系:
$user = User::find($id);
$posts = $user->posts()->get();

这也将通过强制任何更新/保存使用正确的 user_id 来强制执行完整性。 key 。关于如何使用 Eloquent 有一些相当广泛的文档。数据库查询的风格,在这里查看:

Laravel - Eloquent

希望有帮助!

编辑

要将其传递给 View ,请将以下内容添加到您的 Controller 中:
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它“回显”了有关用户和帖子的所有信息:
<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

关于php - 如何使用 Laravel 中的帖子查询用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28630850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com