Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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 8中的用户注册过程中附加文件_Php_Laravel - Fatal编程技术网

Php 如何在Laravel 8中的用户注册过程中附加文件

Php 如何在Laravel 8中的用户注册过程中附加文件,php,laravel,Php,Laravel,我正在使用Laravel 8开发一个注册web应用程序,我对Laravel很陌生。可通过以下链接访问: 我希望用户在注册期间附加文件(我的表单中将有3个文件上载字段)。 请帮助我拿出逻辑代码来验证和上传目录和mySQL数据库中的文件。我在网上查看了解决方案,但没有一个有效。请帮帮我,谢谢 以下是表格的一部分,其中包含刀片模板中的文件上载字段: <div class="form-group row"> <div class="col-sm-3&quo

我正在使用Laravel 8开发一个注册web应用程序,我对Laravel很陌生。可通过以下链接访问: 我希望用户在注册期间附加文件(我的表单中将有3个文件上载字段)。 请帮助我拿出逻辑代码来验证和上传目录和mySQL数据库中的文件。我在网上查看了解决方案,但没有一个有效。请帮帮我,谢谢

以下是表格的一部分,其中包含刀片模板中的文件上载字段:

<div class="form-group row">
<div class="col-sm-3">
<label for="kra_pindoc">Attach KRA Document</label>
<input type="file" class="form-control-file" id="kra_pindoc" name="kra_pindoc">
</div>
<div class="col-sm-3">
<label for="id_carddoc">Attach ID Document</label>
<input type="file" class="form-control-file" id="id_carddoc" name="id_carddoc">
</div>
</div>

附上KRA文件
附上身份证件
我的注册控制器

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\Models\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

class RegisterController extends Controller
{
   
    use RegistersUsers;

    /**
     * Where to redirect users after registration.
     *
     * @var string
     */
    protected $redirectTo = '/success';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make(
            $data,
            [
            'surname'               => 'required|string|max:255',
            'middle_name'           => 'required|string|max:255',
            'first_name'            => 'required|string|max:255',
            'email'                 => 'required|email|max:255|unique:users',
            'password'              => 'required|min:8|confirmed',
            'password_confirmation' => 'required|same:password',
            'username'              => 'required|string|max:255|unique:users|alpha_dash',
            ]
        );
    }

   
    protected function create(array $data)
    {
        return User::create([
            'surname'               => $data['surname'],
            'middle_name'           => $data['middle_name'],
            'first_name'            => $data['first_name'],
            'email'                 => $data['email'],
            'username'              => $data['username'],
            'password'              => Hash::make($data['password']),
        ]);

        
    }

    //This code is used to disable auto-login after registration
    //It overrides the reister function

    public function register(Request $request)
    {
        $this->validator($request->all())->validate();
        event(new Registered($user = $this->create($request->all())));
        return $this->registered($request, $user)
            ?: redirect($this->redirectPath());
    }
}

对于验证,请创建一个,不要创建一个方法
验证
@matiaslauriti,很好地说明。有人对此有解决方案吗?我不太习惯使用文件,因此无法帮助您,抱歉!
<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasFactory, Notifiable, HasRoles;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'surname',
        'middle_name',
        'first_name',
        'email',
        'password',
        'username',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}