Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel雄辩地创建返回空id_Php_Laravel_Eloquent - Fatal编程技术网

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)