【问题标题】:Laravel : Saving empty string in database even if it's not empty input in formLaravel:即使在表单中不是空输入,也将空字符串保存在数据库中
【发布时间】:2016-07-02 12:06:54
【问题描述】:

当我在应用名称、电子邮件和电话中输入我的注册表单时,电话不显示,并且字符串以奇怪的格式保存。

当我运行php artisan tinker:

 DB::table('user1s')->get();
=> [
     {#640
       +"id": 1,
       +"name": """
         \x09
         \x09sda\t
         """,
       +"email": """
         \x09
         \x09sds\t
         """,
       +"phone_number": "",
       +"created_at": "2016-07-02 11:28:04",
       +"updated_at": "2016-07-02 11:28:04",
     },
     {#642
       +"id": 2,
       +"name": """
         \x09
         \x09da
         """,
       +"email": """
         sd\x09
         \x09
         """,
       +"phone_number": "",
       +"created_at": "2016-07-02 11:33:56",
       +"updated_at": "2016-07-02 11:33:56",
     },
     {#643
       +"id": 3,
       +"name": """
         more in-\x0D
         \x09
         """,
       +"email": """
         \x09
         \x09more in-
         """,
       +"phone_number": "",
       +"created_at": "2016-07-02 11:52:43",
       +"updated_at": "2016-07-02 11:52:43",
     },
   ]

我在视图中的表单如下所示:

@extends('layout')


@section('content')
        <div class="row">
    <div class="col-md-6 col-md-offset-3">

        <h1>    Welcome please register!    </h1>

    <h1>All users</h1>

     @foreach ($user1s as $user1)
        <div>
            {{ $user1->phone_number }}
        </div>

    @endforeach 

        <hr>
        <h3>Fill in required informations</h3>

        <form  method="POST" action=" "> 
                <input name="_token" type="hidden" value="{{ csrf_token() }}"/>


            <ul class="list-group" >

                Name
                <div class="form-group" title="name" >
                    <textarea name="name" class="form-control" ></textarea>
                </div>


                Email
                <div class="form-group"  title="email"> 
                    <textarea name="email"  class="form-control" ></textarea>
                </div>

                Phone number    
                <div class="form-group"  title="phone_number"> 
                    <textarea name="phone_number"  class="form-control" ></textarea>
                </div>


                    <div class="form-group" >
                    <button class="btn btn-primary">Register</button>
                    </div>

            </ul>
        </form>
        @foreach($errors->all() as $error)
        {{ $error }}
        @endforeach
    </div>
</div>

@endsection

还有我的迁移:

public function up()
{
    Schema::create('user1s', function (Blueprint $table) {
        $table->increments('id');
        $table->string("name");
        $table->string("email");
        $table->string("phone_number");
        $table->timestamps();
    });
}

有人发现问题了吗?

【问题讨论】:

  • 需要看看你的控制器,真的。这就是执行逻辑的部分。
  • 哦,现在很清楚我没有保存电话号码: public function store(Request $request) { $this->validate($request , [ 'name' =>'required' , 'email' =>'required' , 'phone_number' =>'required' , ]); $用户=新用户1; $user->name = $request->name; $user->email = $request->email; $用户->保存();返回重定向('/谢谢'); } }
  • @Farkie 谢谢!但唯一令人困惑的是字符串中的 \x09?
  • x09 是一个制表符。也许你在 textarea 框中设置了一个制表符?
  • 是的,我有!

标签: php mysql forms laravel


【解决方案1】:

这里的问题在于您的控制器(或最终路由)代码。正如 cmets 中所说,您错过了保存 phone_number 项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多