zoukankan      html  css  js  c++  java
  • laravel 多对多 belonsToMany

    1. 建库,建model
      php artisan make:migration create_tags_table --create=tags
      php artisan make:model Tag
    2. 加字段
      <?php
      
      use IlluminateDatabaseSchemaBlueprint;
      use IlluminateDatabaseMigrationsMigration;
      
      class CreateTagsTable extends Migration
      {
      
          public function up()
          {
              Schema::create('tags', function (Blueprint $table) {
                  $table->increments('id');
                  $table->string('name');
                  $table->timestamps();
              });
            //字母顺序,单数形式表名下划线结合定义中间表名
              Schema::create('article_tag', function (Blueprint $table) {
                  $table->integer('tag_id')->unsigned()->index();
                  $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
                  $table->integer('article_id')->unsigned()->index();
                  $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
                  $table->timestamps();
              });
          }
      
          public function down()
          {
              Schema::drop('tags');
              Schema::drop('article_tag');
          }
      }
    3. 添加关系
      //在Article模型中
          public function tags()
          {
              return $this->belongsToMany('AppTag');
          }
      //在Tag中
          public function articles()
          {
              return $this->belongsToMany('AppArticle');
          }
    4. 调用
      $article->tags()->attach($id)
      $tag->articles()->attach($id)
    5. 视图多选框
          <div class='form-group'>    
              {!! Form::label('tags', 'Tags') !!}
              {!! Form::select('tags[]',$tags, null, ['class'=>'form-control','multiple']) !!}
          </div>    
    6. create ,  store
          public function create()
          {
              $tags = AppTag::lists('name','id');
      
              return view('articles.create', compact('tags'));
          }
      
          public function store(ArticleRequest $request)
          {
              
              $article = Auth::user()->articles()->create($request->all());
      
              $article->tags()->attach($request->tags);
      
              flash()->success('Your article has been created!');
      
              return  redirect('articles');
      
          }
  • 相关阅读:
    Git 分支使用
    ansible 2.7 API
    zabbix api
    (四)ansible 通过堡垒机访问内网服务器
    C#实体对象出现中文处理乱码的问题
    mysql数据库数据(字段数过大)太多导入不了的解决方法
    MathWorks.MATLAB.NET.Arrays.MWArray”的类型初始值设定项引发异常 解决方法
    hibernate 主键生成方式
    HTN规划 jshop2
    自动驾驶
  • 原文地址:https://www.cnblogs.com/fenle/p/4808898.html
Copyright © 2011-2022 走看看