Php Laravel雄辩地创建返回空id
我有一个雄辩的模型Php Laravel雄辩地创建返回空id,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个雄辩的模型Foo,带有一个公共bar数组: class Foo extends Model { public $bar = ['a', 'b', 'c']; } 在控制器的store方法中,我想访问这些变量,并创建一个新的Foo对象: public function store(Request $request) { $foo = new Foo; foreach ($foo->bar as $field) { $data[$field]
Foo
,带有一个公共bar
数组:
class Foo extends Model
{
public $bar = ['a', 'b', 'c'];
}
在控制器的store
方法中,我想访问这些变量,并创建一个新的Foo
对象:
public function store(Request $request)
{
$foo = new Foo;
foreach ($foo->bar as $field) {
$data[$field] = $request->{$field};
}
$foo->create($data);
return $foo->id;
}
问题是,
$foo->id
为null
,尽管对象已成功创建。您可以重新分配$foo
变量,因为create
方法将返回新创建的实例
$foo = $foo->create($data);
您尝试过使用save方法吗?我会将您的请求验证为一个变量。您可以使用$request->validate()方法中的变量return来代替foreach语句进行创建。只是为了避免抛出参数注入或大规模赋值错误。是否应该静态调用
create()
?像这样:$foo=foo::create($data)代码>。