我有一个id为主键而不是自动增量的表,我需要将自定义值作为ID。我尝试使用firstOrNew()和findOrCreate()以及通过将ID作为参数推送来创建(),如
$var_id = '99';
$var = Table::findOrCreate(['id'=>$var_id]);
return $var;
但它以0作为ID创建新行。任何人都可以建议我如何使用99创建ID。
由于
答案 0 :(得分:1)
您是手动创建表还是通过迁移创建表?确保您的ID在桌面上设置为“自动增量”。如果您通过迁移进行创建,则看起来像$table->increments('id');
答案 1 :(得分:0)
尝试laravel查询构建器,它的使用灵活。
DB ::表( '表名') - >插入( array('id'=> '99'));
如需更多帮助,请查看此链接 Laravel 4.2 query builder
答案 2 :(得分:0)
我猜您的代码有一个小错字,在您的情况下,您可能想要使用firstOrCreate
或findOrNew
。
无论哪种方式,默认情况下都会保护所有模型属性。
将id
添加到模型可填充数组中,如下所示:
protected $fillable = ['id']; // perhaps more ?
再试一次。