我想在post和user之间建立一个关系,以便能够通过$user->posts()的方式获取所有的post,并通过$post->user()的方式获取user
我做了belongsTo函数,但是我需要一种方法,这样当我得到用户时,我就可以找到他的所有帖子,当我得到帖子时,我使用\app\post::find(1)->user()->name it,什么都不返回
Post模型
class Post extends Model
{
public function user() {
return $this->belongsTo('App\User',null,'userid');
}
}
后分贝结构
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->longText('body');
$table->string('thumbnail');
$table->integer('views');
$table->integer('likes');
$table->bigInteger('userid');
$table->integer('categoryid');
$table->timestamps();
});
User Model中没有任何内容,而不是laravel默认值,因为User没有引用post的列
用户数据库结构为Laravel默认值
Foreach代码:
@foreach(\App\Post::find(4)->user() as $user)
<p>{{$user->name}}</p>
@endforeach
我希望它能得到用户名,但它没有。
在用户模型中
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\User;
class Post extends Model
{
/**
* Get the comments for the blog post.
*/
public function user()
{
return $this->belongsTo('App\User');
}
}
在用户模型中
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Post;
class User extends Model
{
/**
* Get the posts for the user.
*/
public function comments()
{
return $this->hasMany('App\Post');
}
}
现在您可以以app\user::find(id)->posts
的身份访问用户的帖子
使用hasmany
关系。
在用户模型内:
public function posts()
{
return $this->hasMany(Post::class, 'userid', 'id');
}
现在,您可以获得所有用户的帖子:
$posts = User::find($someId)->posts()->get();
//or
$posts = User::find($someId)->posts;
关于文档有很多关系
希望有帮助。
我有3个模型和一个透视表: 学校年-模型 ID 课程模式 ID schoolyear_id 课程\学生-数据透视表 课程号 学生证 学生模型 ID 关系是: 一学年有许多课程 一门属于任何学生的课程 在任何课程中的学生 什么是最快、更优雅的方法来找到学生进入一个学年,并且能够按学生属性进行排序?
问题内容: 我在laravel中很难建立起非常嵌套的关系。 所需的行为如下, 我通过ID选择一个事件,我想查看哪些人已订阅该事件。 现在的问题是事件和人员之间有一些表格。 这是有效的查询! 事件模型 城市模型 公司模式 人物模型 我尝试过的 和 还有很多其他可能性,我真的很坚持。在laravel中实现这种嵌套关系链接如此困难吗? 谢谢! 问题答案: 如果只想从表中选择某些字段,请使用以下命令:
问题内容: 有没有办法在laravel中合并2个关系? 这是现在设置的方式,但是有没有办法我可以将两者合并? 问题答案: 试用属性的getter方法,该方法返回从关系返回的合并集合。 或者,您可以在返回集合之前调用其他方法以获取不同的结果集。
我试图编写一个查询,它从模型中选择列,然后从关系表中选择一列。 如何从此查询中的关系表中获取列?
我有一个问题,我无法用文档解决。 我想在两个用户之间创建一个非常简单的对话系统。 我有3个模型和表: 用户id、名称 会话 id 消息 id,user_id,conversation_id,内容 因此,一条消息属于一个用户和一个对话,但我希望对话属于多个用户。 我不知道怎么用桌子做这个。如果我在对话表中创建一个字段,我不能有多个用户。。。
我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:
我正在用Laravel8开发一个应用程序,我遇到了非常奇怪的行为。 我有一个叫做“组织”的模型,这个组织有很多用户(来自捷流的模型)。 我像往常一样做了关系: 在组织模式中: 在用户模型中: 我在用户表上有一个名为Organization_id的字段,在迁移中声明如下: 我检查了数据库,所有的东西都填进去了,没有空值。 预期结果:如果我打电话 我将获取组织对象。 实际结果:我收到一个Veeeery
问题内容: 我正在尝试获得最受欢迎的黑客马拉松,这需要通过各自的黑客马拉松订购。抱歉,这有点难以理解。 我有以下格式的数据库: 该模型是: 并定义为: 我已经尝试过,但是我觉得我犯了一个大错误(可能是$ this-> id),因为它根本不起作用。 我将如何尝试获取基于最多的相关hackathon参与者的最受欢迎的hackathon? 问题答案: 编辑:如果使用Laravel 5.2或更高版本,请使