En mi aplicación laravel, tengo una opción para actualizar los detalles del usuario, la siguiente es la función de actualización en mi controlador
public function update(Request $request, $id) { $this->validate($request, [ 'name' => 'required', 'email' => 'required|email|unique:users,email,'.$id, 'password' => 'same:confirm-password', 'comp_id'=>'required', 'roles' => 'required' ]); $input = $request->all(); if(!empty($input['password'])){ $input['password'] = Hash::make($input['password']); }else{ $input = array_except($input,array('password')); } $user = User::find($id); $user->update($input); DB::table('model_has_roles')->where('model_id',$id)->delete(); $user->assignRole($request->input('roles')); return redirect()->route('customers.index') ->with('success','Customer updated successfully'); }Pero cuando trato de ejecutar la función anterior, aparece un error que dice:
Call to undefined function App\Http\Controllers\array_except()También usé exactamente el mismo código en las otras funciones de actualización, pero funcionaron sin problemas.
Solución 1:
use Illuminate\Support\Arr; $array = ['name' => 'Desk', 'price' => 100]; $filtered = Arr::except($array, ['price']);Referencia: https://laravel.com/docs/6.x/helpers#method-array-except
Solución 2 :
A partir de Laravel 6 , la mayoría de las funciones de str_ & array_ helpers son accesibles SOLAMENTE por el nuevo paquete de composición de laravel/helpers , si no tiene este paquete obtendrá este tipo de error.
Instalar el paquete de ayudantes:
composer require laravel/helpersy
composer dump-autoloadIncluir use Illuminate\Support\Arr; en tu código y cambia:
$input = array_except($input,array('password'));a
$input = Arr::except($input,array('password')); array_except() está en desuso en versiones superiores a 5.8 para laravel