【发布时间】:2020-09-08 12:01:53
【问题描述】:
我在 laravel auth 的用户表中添加了一些字段,当我想创建一个新用户时,它给了我错误 Call to a member function hasFile () on array.
RegisterController.php
protected function create(array $data)
{
$jdate = Carbon::now();
//image
if($data->hasFile('image'))
{
$image = $data->file('image');
$imagee = Crypt::encryptString($image);
$image->storeAs("public\annonces\\".$jdate->format('F').$jdate->year,$imagee.'.'.$image->extension());
$data->image = "annonces\\".$jdate->format('F').$jdate->year."\\".$imagee.'.'.$image->extension();
}
//images
$dataim = array();
if($data->hasFile('images'))
{
foreach($data->file('images') as $file)
{
$namee = "public\\annonces\\".$jdate->format('F').$jdate->year."\\".time().'.'.$file->extension();
$name = Crypt::encryptString($namee).'.'.$file->extension();
$file->storeAs("public\\annonces\\".$jdate->format('F').$jdate->year, $name);
array_push($dataim,$name);
}
}
$data->images=json_encode($dataim);
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'telephone' => $data['telephone'],
'ville' => $data['ville'],
'ighrem' => $data['ighrem'],
'autrei' => $data['autrei'] ?? null,
'hay' => $data['hay'],
'autreh' => $data['autreh'] ?? null,
'adressem' => $data['adressem'],
'adresser' => $data['adresser'],
'image' => $data['image'] ?? null,
'images' => $data['images'] ?? null
]);
}
【问题讨论】:
-
你可以在
create方法的签名中看到$data是一个数组而不是一个请求对象。所以不能对它使用请求方法。 -
$data在这种情况下不是一个对象,但它是一个数组,正如您在create方法的参数中所述,这就是您收到错误的原因。你到底想达到什么目的? -
@user3478148 thx for u answer 我想在数据库中插入图片链接,在公共文件夹 \ storage \ adverts \ September2020 中插入图片