• 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');
      
          }
  • 相关阅读:
    xp sp3下 IIS5.1 配置python 的正确方法
    asp 采集不到数据,采集不成功 拒绝访问 msxml3.dll 错误 '80070005' 的解决方法
    列表样式
    css文本属性
    css背景属性
    常规流练习
    盒模型练习
    定位体系相关练习
    层叠机制的步骤
    简单网页的制作——html
  • 原文地址:https://www.cnblogs.com/fenle/p/4808898.html
Copyright © 2020-2023  润新知