需要帮助在laravel中自动保存id

时间:2017-10-10 06:47:56

标签: php laravel

我刚开始使用laravel版本5.5.13。我在做一对多关系表时遇到了一些问题。我已经按照本教程

https://scotch.io/tutorials/a-guide-to-using-eloquent-orm-in-laravel

执行此操作但有一部分我需要手动分配id(bear_id)。有没有办法自动为它做?在分配id后如何从中获取数据。

Blade.php

对于熊: {{Form::text('name_of_bear, '', ['class' => 'form-control'])}}

对于鱼: <input type="checkbox" id="inlineCheckbox1" name="type_of_fish[]" value="Salmon"> Salmon and <input type="checkbox" id="inlineCheckbox1" name="type_of_fish[]" value="Sardine"> Sardine

熊桌:

Schema::create('bears, function (Blueprint $table) {
            $table->increments('id');
            $table->engine = 'InnoDB';  
            $table->string(name); 
            $table->timestamps();
});

鱼桌:

Schema::create(fishs, function (Blueprint $table) {
            $table->increments('id');
            $table->engine = 'InnoDB';  
            $table->string(name); 
            $table->integer(bear_id);
            $table->timestamps();
});

鱼模型:

namespace App;

use Illuminate\Database\Eloquent\Model;
use Eloquent;


class fish extends Eloquent
{
        protected $fillable = array('name', 'bear_id');

    // DEFINE RELATIONSHIPS 
    public function bears() {
        return $this->belongsTo('App\bear);
    }
}

熊模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Eloquent;

class bear extends Eloquent
{
    protected $primaryKey = 'id';
    public function fishs() {
        return $this->hasMany('App\fish,'bear_id');
    }
}

我知道还有其他方法可以做到这一点,例如附加或关联它,但我真的不知道如何使用它。那么有可能为我提供一些参考的例子吗?

我想要的: 1.例如,1熊(bear_id = 1)可以有很多鱼(fish_id = 1和2),你是怎么做到的? 2.当你的bear_id为0(数据库内部)并且不太知道如何使用其他方法(如附加或关联或转动)时,如何从中获取数据

1 个答案:

答案 0 :(得分:1)

假设您的bear_id数据库表中有一个fish列,您的熊鱼关系定义如下:

class Bear extends Model
{
    public function fish()
    {
        return $this->hasMany('App\Fish');
    }
}

然后可以手动完成将鱼与熊联系起来:

$fish->bear_id = $bear->id;    
$fish->save();

或者您可以通过关系方法创建关系:

$bear->fish()->save($fish);