在控制器中,我为羊模型自动生成了corral_id
。所以,当它更新的时候一直都在生成页面。我需要在开始时生成一次。如何执行此操作。
public function index():CorralResourceCollection
{
$sheeps = Sheep::all();
$corrals = Corral::all();
foreach($sheeps as $sheep){
$sheep->corral_id = $corrals->random()->id;
$sheep->save();
}
return new CorralResourceCollection(Corral::with('sheeps')->paginate());
}
绵羊迁移
$table->bigIncrements('id');
$table->string('name');
$table->integer('corral_id')->unsigned()->nullable();
$table->foreign('corral_id')->references('id')->on('corrals');
答案 0 :(得分:0)
您可以在更新时简单地忽略corral_id。这样它将保留先前的值。
foreach($sheeps as $sheep){
$sheep->corral_id = $corrals->random()->id; // ignore this line
$sheep->save();
}
如果此corral_id是您的主键,并且您不想将其自动递增,则可以在Corral模型中将$ incrementing设置为false。
protected $primaryKey = 'your_key_name'; // this could be id or corral_id in your case
public $incrementing = false;