为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中,单选值列在数据库中为空

在 Laravel 中,单选值列在数据库中为空

PHP
BIG阳 2022-12-23 12:24:51
我的 Blade 文件有一个用户表单。我的代码运行良好,所有值都存储到数据库中,除了单选字段和单选列的值到数据库中说NULL。我阅读了许多论坛并相应地验证了我的代码,但仍然不知道我做错了什么。刀片.php<div class="form-group row"><label for="user_type" class="col-md-4 col-form-label text-md-right ">{{ __('User Type') }}</label>    <div class="col-md-6">      <label class="radio-inline control-label">      <input id="user_type" value="user" type="radio" class="form-control @error('user_type') is-invalid       @enderror" name="user_type" required autocomplete="user_type">User</label>      <label class="radio-inline control-label">      <input id="user_type" value="company" type="radio" class="form-control @error('user_type') is-       invalid @enderror" name="user_type" required autocomplete="user_type">Comapny</label>        @error('user_type')        <span class="invalid-feedback" role="alert">          <strong>{{ $message }}</strong>        <span>        @enderror   </div></div>注册控制器.php<?phpnamespace App\Http\Controllers\Auth;use \Illuminate\Http\Request;use App\Http\Controllers\Controller;use App\Providers\RouteServiceProvider;use App\User;use Illuminate\Foundation\Auth\RegistersUsers;use Illuminate\Support\Facades\Hash;use Illuminate\Support\Facades\Validator;use Illuminate\Auth\Events\Registered;class RegisterController extends Controller{    protected function validator(array $data)    {        $validator = Validator::make($data, [            'register_name' => ['required', 'string', 'max:8'],            'register_email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],            'register_password' => ['required', 'string', 'min:8', 'confirmed'],            'user_type'=> ['required','in:user,company'],        ]);        $validator->setAttributeNames([            'register_email' => 'email',            'register_password' => 'password',        ]);        return $validator;    }   
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

问题是您忘记将 user_type 放入用户模型的可填充数组中。


将您的代码更改为以下将起作用。


protected $fillable = [

    'name', 'email', 'password', 'user_type'

];


查看完整回答
反对 回复 2022-12-23
?
慕斯王

TA贡献1864条经验 获得超2个赞

你应该为无线电设置名称并在控制器中使用:


  <label class="radio-inline control-label">

  <input name="user" id="user_type" value="user" type="radio" class="form-control @error('user_type') is-invalid 

  @enderror" name="user_type" required autocomplete="user_type">User</label>


  <label class="radio-inline control-label">

  <input name="company" id="user_type" value="company" type="radio" class="form-control @error('user_type') is- 

  invalid @enderror" name="user_type" required autocomplete="user_type">Comapny</label>


    @error('user_type')

    <span class="invalid-feedback" role="alert">

      <strong>{{ $message }}</strong>

    </span>

    @enderror

在控制器中:


类 RegisterController 扩展控制器 {


protected function validator(array $data)

{

    $validator = Validator::make($data, [

        'register_name' => ['required', 'string', 'max:8'],

        'register_email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],

        'register_password' => ['required', 'string', 'min:8', 'confirmed'],

        'user_type' => ['required', 'in:user,company'],


    ]);

    $validator->setAttributeNames([

        'register_email' => 'email',

        'register_password' => 'password',

    ]);


    return $validator;

}


protected function create(array $data)

{

    if ($data['user']) {

        $user = User::create([

            'name' => $data['register_name'],

            'email' => $data['register_email'],

            'password' => Hash::make($data['register_password']),

            'user_type' => $data['user'],


        ]);

    }

    if ($data['company']) {

        $user = User::create([

            'name' => $data['register_name'],

            'email' => $data['register_email'],

            'password' => Hash::make($data['register_password']),

            'user_type' => $data['company'],


        ]);

    }


    $user->sendEmailVerificationNotification();


    return $user;

}


查看完整回答
反对 回复 2022-12-23
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号