下拉列表中的值未传递给Laravel php中的控制器

时间:2014-04-10 11:45:05

标签: php mysql laravel-4 blade

我的观点('注册'页面)包含一堆输入字段和一个下拉列表。由于某种原因,所有输入字段数据都会毫无问题地传递给控制器​​,但不会传递下拉列表中的值。这使我的代码失败 - 返回以下错误:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'carehome_type' cannot be null (SQL: insert into `users` (`email`, `password`, `code`, `active`, `carehome_name`, `carehome_type`, `updated_at`, `created_at`) values (myemail@gmail.com, yzmBHUNQTNbE6nGA90Adq1w4BTGXWYyV8mvwNVUoGx4KrMQiAlSSseZ4DkuyitCZNUa5N59nUiOy.iCKie8w3LD0SHs52YCBUp9lt6JbRA0Z6wuqi, 0, ergerg, , 2014-04-10 11:25:42, 2014-04-10 11:25:42, ?))

以下是代码:

@extends('layout.main')


@section('content')

<form action="{{URL::route('account-create-post')}}" method="post">

    <div class='field'>
        Email:              <input type='text' name='email'{{ (Input::old('email')) ?  'value="' . e(Input::old('email')) . '"'  :  ''}}>

        @if($errors->has('email'))
            {{$errors->first('email') }}
        @endif

    </div>

    <div class='field'>
        Username:           <input type='text' name='username'{{ (Input::old('username')) ?  'value="' . e(Input::old('username')) . '"'  :  ''}}>
        @if($errors->has('username'))
            {{$errors->first('username') }}
        @endif
    </div>

    <div class='field'>
        Password:           <input type='password' name='password'>
        @if($errors->has('password'))
            {{ $errors->first('password') }}
        @endif  

    </div>

    <div class='field'>
        Password (again):   <input type='password' name='password_again'>
        @if($errors->has('password_again'))
            {{ $errors->first('password_again') }}
        @endif
    </div>


    <div>
        Carehome type:
        <select >
            <option value="Independent" name='carehome_type'>Independent</option>
            <option value="">-------------</option>
            <option value="Chain#_1" name='carehome_type'>Chain#_1</option>
            <option value="Chain#_2" name='carehome_type'>Chain#_2</option>
            <option value="Chain#_3" name='carehome_type'>Chain#_3</option>
            <option value="Chain#_4" name='carehome_type'>Chain#_4</option>
            <option value="Chain#_5" name='carehome_type'>Chain#_5</option>
        </select> 
    </div>

    <div class='field'>
        Carehome name:  <input type='text' name='carehome_name'>
        @if($errors->has('carehome_name'))
            {{ $errors->first('carehome_name') }}
        @endif
    </div>





<br>



                            <input type='submit' value='Create account'>
    {{ Form::token() }}
</form>
@stop

1 个答案:

答案 0 :(得分:1)

您的Carehome类型选择框没有名称,因此不会传递数据。它的选项确实有一个名称,但该名称参数不适用于那里。

所以不要这样:

Carehome type:
    <select >
        <option value="Independent" name='carehome_type'>Independent</option>
        <option value="">-------------</option>
        <option value="Chain#_1" name='carehome_type'>Chain#_1</option>
        <option value="Chain#_2" name='carehome_type'>Chain#_2</option>
        <option value="Chain#_3" name='carehome_type'>Chain#_3</option>
        <option value="Chain#_4" name='carehome_type'>Chain#_4</option>
        <option value="Chain#_5" name='carehome_type'>Chain#_5</option>
    </select> 

使用此:

Carehome type:
    <select name="carehome_type">
        <option value="Independent">Independent</option>
        <option value="">-------------</option>
        <option value="Chain#_1">Chain#_1</option>
        <option value="Chain#_2">Chain#_2</option>
        <option value="Chain#_3">Chain#_3</option>
        <option value="Chain#_4">Chain#_4</option>
        <option value="Chain#_5">Chain#_5</option>
    </select>