我刚开始使用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(数据库内部)并且不太知道如何使用其他方法(如附加或关联或转动)时,如何从中获取数据
答案 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);