【问题标题】:insert data in beds table when create a room创建房间时在床表中插入数据
【发布时间】:2018-01-29 08:04:59
【问题描述】:

我有房间迁移

Schema::create('rooms', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->integer('floor');
            $table->integer('beds'); //number of beds in each room
            $table->integer('room_type_id')->unsigned();
            $table->foreign('room_type_id')->references('id'->on('room_types')
                  ->onUpdate('cascade')->onDelete('cascade');
            $table->text('description')->nullable();
        });

和床位迁移

Schema::create('beds', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name')->default('1');
            $table->decimal('charge');
            $table->boolean('available')->default(1);
            $table->integer('room_id')->unsigned();
            $table->foreign('room_id')->references('id')->on('rooms')
                  ->onUpdate('cascade')->onDelete('cascade');
            $table->boolean('status')->default(1);
            $table->timestamps(); 
        });

我想在添加新房间时同时根据房间表中的床位字段添加床位数量,并提供床位名称,如 1、2、3、4 等

【问题讨论】:

  • 到目前为止你做了什么?
  • 看看Eloquent Events
  • 我试过了,但我没有到达@Wreigh
  • 迁移是为了创建表格而不是数据输入
  • 创建表,在迁移中设置外键,并在控制器中创建具有所需细节的模型

标签: php laravel laravel-5.5


【解决方案1】:

我使用事件监听器

public function handle(createRoom $event)
    {

        for ($i =1; $i <= $event->room->beds; $i++) 
        {
            $bed = new Bed();
            $bed->name = $i;
            $bed->charge = '100';
            $bed->room_id = $event->room->id;
            $bed->save();
        }
    }
} 

【讨论】:

    猜你喜欢
    • 2020-06-13
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多