【问题标题】:Laravel 5 form not working (not inserting data)Laravel 5 表单不工作(不插入数据)
【发布时间】:2015-09-22 12:03:54
【问题描述】:
        public function save()
 {
        //return \View::make('student.view');

        $validation= array(
                      'first_name'=>'required',

                      'email'=>'required'

                          );
        $v1= Validator::make(Input::all(),$validation);

我认为它在这一行之后失败并且没有插入数据,它只是再次显示表单,就像 v1 失败一样,它在按下提交按钮后进入查看文件(表单)。

        if( $v1->fails())
        {
        return Redirect::to('view')->withErrors($v1);
        }
        else
        { $poststudent=Input::all();
          $data = array('first_name'=>$poststudent['first_name'],
                         'last_name'=>$poststudent['last_name'],
                         'email'=>    $poststudent['email'],
                    'interested'=>    $poststudent['interested'], 
                         'skills'=>   $poststudent['skills']);

        $check=0;
        $check=DB::table('students')->insert($data);

        if($check > 0)
        {
        return Redirect::to('/');
        }
        else
        {
        return Redirect::to('/view');
        }

        }

        }

view.blade.php 文件在这里(这里有form的特点):

   <form action="<?=URL::to('/save')?>" method="POST">

    <input type="hidden" name="_token" value="{{ csrf_token() }}">


    <div class="form-group">
    <label for= "first_name"> FIRST NAME </label>
     <input name="FIRST NAME" type="text" value="" class="form-control" id="first name"/>
   </div>

  <br /><br />
  <div class="form-group">
  <label for= "last_name"> LAST NAME </label>
   <input name="LAST NAME" type="text" value="" class="form-control" id="LAST NAME"/>
  </div>

 <br /><br />
  <div class="form-group">
  <label for= "EMAIL"> EMAIL </label>
   <input name="EMAIL" type="text" value="" class="form-control" id="EMAIL"/>
   </div>



    <br /><br />
    <div >
    <label for= "INTERESTED"> INTERESTED </label><br />
    <input type="radio" name="INTERESTED" value="ANDROID DEVELOPER" />
    ANDROID DEVELOPER<br />
    <input type="radio" name="INTERESTED" value="WEB DEVELOPER" />
    WEB DEVELOPER<br />
    <input type="radio" name="INTERESTED" value="GAME DEVELOPER" />
    GAME DEVELOPER <br />
    <input type="radio" name="INTERESTED" value="JAVA DEVELOPER" />
    JAVA DEVELOPER<br />
   </div>

   <br /><br />
   <div >
   <label for= "SKILLS"> SKILLS </label><br />
   <textarea name="SKILLS" cols="50" rows="6"></textare a>
    </div>



   <br />
   <br />


   <input type="submit" value="Submit" name="save" class="text" />


    </form>

我不知道如何解决这个问题。

【问题讨论】:

  • 你的问题不是很清楚。什么不工作?有没有错误?
  • 没有。没有错误.. bt 主要问题是。 .. 它没有显示插入的数据
  • 你的路由方法是什么,你在哪里发布数据?
  • 当我在表单中插入数据然后按下提交按钮时......它再次返回查看页面(表单页面)。当我去 php 我的管理员检查插入的数据时。没有插入任何东西。
  • Route::post('/save',array('uses'=>'student@save'));这是我的路线方法

标签: php mysql laravel laravel-4 laravel-5


【解决方案1】:

在您的 Blade 视图中,您以错误的方式使用元素名称。例如 name="Last Name" 你应该使用如下:

<input name="last_name" type="text" value="" class="form-control" id="LAST NAME"/>

那么你的这段代码就可以工作了。

$data = array('first_name'=>$poststudent['first_name'],
                         'last_name'=>$poststudent['last_name'],
                         'email'=>    $poststudent['email'],
                    'interested'=>    $poststudent['interested'], 
                         'skills'=>   $poststudent['skills']);

更新

你还需要使用

 public function save(Request $request)

和没有

 $poststudent=Input::all();

使用

 $poststudent = $request->all();

【讨论】:

  • @deepsingh 我只是提出一些建议,你可以检查一下。
  • @deepsingh 欢迎 :)
  • 类 'App\Http\Controllers\DB' 未找到.. bt 我现在找到了.. 我现在该怎么办
  • 在班级顶部添加 use Illuminate\Support\Facades\DB;
猜你喜欢
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-11
  • 2016-01-18
  • 1970-01-01
  • 2016-01-18
  • 2016-05-15
相关资源
最近更新 更多