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