如何在laravel 4.2中基于自定义值ID创建新行

时间:2015-04-20 15:58:25

标签: php laravel laravel-4

我有一个id为主键而不是自动增量的表,我需要将自定义值作为ID。我尝试使用firstOrNew()和findOrCreate()以及通过将ID作为参数推送来创建(),如

$var_id = '99';
$var = Table::findOrCreate(['id'=>$var_id]);
return $var;

但它以0作为ID创建新行。任何人都可以建议我如何使用99创建ID。

由于

3 个答案:

答案 0 :(得分:1)

您是手动创建表还是通过迁移创建表?确保您的ID在桌面上设置为“自动增量”。如果您通过迁移进行创建,则看起来像$table->increments('id');

答案 1 :(得分:0)

尝试laravel查询构建器,它的使用灵活。

  

DB ::表( '表名') - >插入(          array('id'=> '99'));

如需更多帮助,请查看此链接 Laravel 4.2 query builder

答案 2 :(得分:0)

我猜您的代码有一个小错字,在您的情况下,您可能想要使用firstOrCreatefindOrNew

无论哪种方式,默认情况下都会保护所有模型属性。 将id添加到模型可填充数组中,如下所示:

protected $fillable = ['id']; // perhaps more ?

再试一次。