• 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');
      
          }
  • 相关阅读:
    敏捷开发读后感
    软工第一次作业总结报告
    个人项目作业week5——敏捷开发方法读后感
    结对项目——电梯调度
    个人项目作业
    个人阅读作业3
    个人阅读作业2
    软件工程基础作业-个人项目代码复审
    电梯调度项目总结
    《移山之道》读后感
  • 原文地址:https://www.cnblogs.com/fenle/p/4808898.html
Copyright © 2020-2023  润新知