laravel中的模型关联之(一对多)】的更多相关文章

一对多 一对多就相当于,一个用户有多篇文章,这多篇文章都对应一个用户 这是一张文章表,一个用户有多篇文章,这里是在用户模型里面获取用户的所有文章, 第二个参数就是获取的模型文章表(post)里面的用户外键,第三个参数对应的就是用户模型里面对应的主键id 当然laravel里面提供了省略后面两个参数的,但是个人觉得容易出错 这里是个人中心页面的展示,展示用户的10条文章,按照创建时间倒叙排序 展示的是用的的所有文章,可以调出文章表里的属性,但是如果你想调出文章表里面的用户的用户名,这里就要用到一对…
一对一 一对一的关联关系就相当于,赞和文章之间的关系,一个用户只能赞一次一个文章,只能和文章发生一次关系, 用户和赞的文章是唯一的一份,这里举得是判断用户是否赞过某个文章 一个参数都是你要获取的模型,第二个参数就是获取的模型的外键,第三个参数是当前模型的主键 这里用的是判断当前登陆的用户是否赞过,就是判断是否存在,如果存在就显示取消赞,没有那就是显示赞…
一对一关联 hasOne('关联模型','外键','主键'); 关联模型(必须):关联的模型名或者类名 外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id 主键:当前模型主键,默认会自动获取也可以指定传入 一对多关联 hasMany('关联模型','外键','主键'); 关联模型(必须):模型名或者模型类名 外键:关联模型外键,默认的外键名规则是当前模型名+_id 主键:当前模型主键,一般会自动获取也可以指定传入 远程一对多 hasManyThrough('关联…
一对多的反向 一对多的反向就相当于,一个用户有多篇文章,但是在显示文章模型的时候你又想显示这个用户的用户名,但是你只有用户id, 这时候就用到了一对多的反向,你用用户(User)模型里面定义了一对多来获取了用户的所有文章之后,再在文章模型(post)里面定义一个方法 第二个参数是post表,当前模型的外键,然后第三个参数 就是获取的模型的主键,这跟一对多正好是相反的 这里就把用户的文章给打印出来了,但是通过->users就获得了在post表里面定义的users方法,但是这里千万不能加括号,然后在…
需求,一个用户有多篇文章全部查询出来 文章表 用户表 //首先查找出一个用户出来 $user=Users::find()->'])->one(); //第一个参数还是关联的模型,第二个依旧还是数组,数组第一个就是关联的 模型的外键,第二个就是自身的外键 $info= $user->hasMany(Post::className(),["user_id"=>"id"])->asArray()->all(); var_dump($in…
模型是用ORM 来做, 使用类来表示一个表,每个表都对应一个模型,以供上层使用 创建模型在项目中的位置定位: /app/下面 好了,我们来创建一个模型: php artisan make:model Post 这样模型就创建好了 然后我们来谈谈tinker的使用 tinker可以用来测试数据,对数据进行模拟,验证post模型是否有问题 php artisan tinker 然后,我们来数据库进行查看一下 数据上来了,但是呐,有一个问题,就是时间没对上 我们来到这里看看  项目中的config/a…
按照开发手册的说法,肯定是指令不够全,附代码图 如果, tests 是文章表, users 是用户表 test.com/tests/1 是 id 为 1 的文章地址( get 访问) 假如 TestsController 是控制器 show 是文章详情 publish function show(Test $test,Request $requset){ $mode=$test::find($requset->id);// 获取 id 为 1 的文章模型 $name=$mode->user-&…
public function orm(){ //查询表的所有记录 //$user = Admin::all(); //dd($user); //查询某一条记录 //$user = Admin::find(2); //dd($user); //findOrFail() 根据主键查找,如果没有找到就抛出异常 //$user = Admin::findOrFail(1); //dd($user); //查询所有记录 //$user = Admin::get(); //dd($user); //增加条…
<?phpnamespace App; use Illuminate\Database\Eloquent\Model; class Admin extends Model{ //指定表名 protected $table = 'wd_user'; //指定允许批量复制的字段 protected $fillable = ['username']; //指定id protected $primaryKey = 'uid'; //自动维护时间戳 public $timestamps = true; /…
在laravel中的模型与模型之间创建好关联关系会比较方便的方法 但是我们为了方便,有时也会忽略一些东西,比如: 我们在控制器中把整个一个文章对象传到了模板页面 在一次for循环下, 我们对数据进行了一系列的加载,并且我们发现文章对象的用户对象也直接使用, 导致了M V C存在的意义有点忽略 我们需要的是将用户对象也要在控制器进行加载出来,而不是在模板中进行加载 采用以下两种方法都可以 第一种: 第二种:…