最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • laravel一对一、一对多关联模型

    正文概述 转载于:掘金(陆景学)   2021-07-29   421

    一、关联模型(一对一)

    关联模型就是绑定模型(表)的关系(关联表),后续需要使用联表的时候就可以直接使用关联模型。注意:关联模型必须要创建模型。

    1.1 一对一关系

    例:一篇文章只有一个作者 1、创建模型(前提) php artisan make:model Article php artisan make:model Author laravel一对一、一对多关联模型 laravel一对一、一对多关联模型 关联模型的关联方法: 在写关联模型的时候要分析出谁关联谁(类似于联表查询的主、从表),谁做主动关联的模型?当前的案例是文章关联作者,需要关联代码写在主模型中(文章模型中)。 语法:

    public function 被关联的模型名小写() {
    	return $this -> hasOne('需要关联模型的命名空间', '被关联模型的关系字段', '本模型中的关系字段');
    }
    
    // 定义关联方法,关联作者模型
        public function rel_author() {
            return $this -> hasOne('App\Models\Author', 'id', 'author_id');
        }
    

    创建路由: laravel一对一、一对多关联模型 创建关联方法: laravel一对一、一对多关联模型 创建路由方法

    // 关联模型
        public function guanlian () {
            // 查询文章信息
            $data = Article::all();
            // dump($data);
            foreach($data as $key => $value) {
                echo '文章id:'. $value -> id . '<br/>';
                echo '文章名称:'. $value -> article_name . '<br/>';
                echo '作者名称:' . $value -> rel_author -> author_name . '<br/>';
                echo '<hr/>';
    
            }
        }
    

    laravel一对一、一对多关联模型 laravel一对一、一对多关联模型 效果: laravel一对一、一对多关联模型 注意:关联关系的使用方法:使用动态属性进行调用。动态属性名称就是先前定义的关联方法名称。

    @TOC

    二、关联模型(一对多)

    2.1 一对多关系

    例:一篇文章有多个评论。 由于文章和评论的关系是一对多的关系,所以需要再去创建一个数据表(评论表)。

    字段id主键
    字段comment评论内容字段article_id和文章的关系字段,文章id迁移文件的创建 php artisan make:migration comment_tablelaravel一对一、一对多关联模型增加属性字段:
    public function up()
        {
            Schema::create('comment', function (Blueprint $table) {
                $table->increments('id');
                $table->text('comment') -> comment('评论内容');
                $table->integer('article_id') -> comment('文章id');
                $table->timestamps();
            });
        }
    

    laravel一对一、一对多关联模型 执行迁移: php artisan migrate laravel一对一、一对多关联模型 效果: laravel一对一、一对多关联模型 创建填充器文件: php artisan make:seeder CommentTableSeeder laravel一对一、一对多关联模型 编写填充器文件的代码:

    public function run()
        {
            // 写入数据到comment表中
            DB::table('comment') -> insert([
                [
                    'comment' => '阿萨德和济困扶危i哦嗯是的,阿卡卡拉的身份',
                    'article_id' => rand(1,5)
                ],
                [
                    'comment' => '圣诞节疯狂辣椒风刀霜剑为哦额陪我',
                    'article_id' => rand(1,5)
                ],
                [
                    'comment' => '阿都是会计法;为了李莫愁v男客服即可额',
                    'article_id' => rand(1,5)
                ],
                [
                    'comment' => '阿卡戴珊理解范围就那么难吗',
                    'article_id' => rand(1,5)
                ],
            ]);
        }
    

    laravel一对一、一对多关联模型 执行填充器 php artisan db:seed --class=CommentTableSeeder laravel一对一、一对多关联模型 效果: laravel一对一、一对多关联模型 创建模型: php artisan make:model Comment laravel一对一、一对多关联模型 laravel一对一、一对多关联模型 案例:查询每个文章(主)下所有的评论(从)。 关联关系的编写:

    public function 被关联的模型名小写() {
    	return $this -> hasMany('需要关联模型的命名空间', '被关联模型的关系字段', '本模型的关系字段')
    }
    

    文章模型定义关联评论方法(一对多):

    // 定义评论模型
        public function rel_comment() {
            return $this -> hasMany('App\Models\Comment', 'article_id', 'id');
        }
    

    laravel一对一、一对多关联模型 创建路由: laravel一对一、一对多关联模型 定义方法:

    // 关联模型 一对多
        public function yiduiduo () {
            // 查询文章
            $data = Article::all();
            // 循环
            foreach($data as $key => $value) {
                echo '文章id:'. $value -> id . '<br/>';
                echo '文章名称:'. $value -> article_name . '<br/>';
                // 循环输出评论
                foreach($value -> rel_comment as $k => $v) {
                    echo '&emsp;&emsp;'.$v -> comment . '<br/>';
                }
                echo '<hr/>';
    
            }
        }
    

    laravel一对一、一对多关联模型 效果: laravel一对一、一对多关联模型


    起源地下载网 » laravel一对一、一对多关联模型

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元