【问题标题】:How to insert value to a column in laravel?如何将值插入到laravel中的列?
【发布时间】:2016-06-19 20:14:09
【问题描述】:

我已经启动并运行了 laravel 'make:auth()' 并且我在迁移中几乎没有修改,即添加了一个名为 'admin' 的布尔字段,默认情况下我将该字段设为 0 。现在我在视图 'Make Admin' 中创建了一个按钮,我希望这个按钮将管理字段从零更新为 1。

我厌倦了下面的内容,但它没有更新 DB 列值。

控制器:

public function makeAdmin($id)
    {
        $user = User::find($id);
            if($user){
                $user->admin = '1';
                $user->save();
                return Redirect::to('/users');
            }
}

查看

@extends('layouts.app')

@section('content')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading">All Registered User(s)</div>

                <div class="panel-body" id="toPrint">
                   <table class="table table-striped">
                            <thead>
                              <tr>
                                <th>ID</th>
                                <th>Name</th>
                                <th>Email</th>
                                <th>Password</th>
                                <th>Role</th>
                                <th>Edit</th>
                                <th>Delete</th>
                              </tr>
                            </thead>
                            <tbody>
                                @foreach($users as $user)
                                  <tr>
                                    <td>{!! $user->id !!}</td>
                                    <td>{!! $user->name !!}</td>
                                    <td>{!! $user->email !!}</td>
                                    <td>{!! $user->password !!}</td>
                                    <td>
                                        {!! Form::open(array('action'=>'Users@makeAdmin', 'url' => "/users" , 'method' => 'POST')) !!}
                                            {!! Form::hidden('id', $user->id) !!}
                                                <button type="submit" class="btn btn-default">Make Admin</button>
                                        {!! Form::close() !!}
                                    </td>
                                    <td>
                                        {!! Form::open(array('url' => "/users/$user->id/edit" , 'method' => 'GET')) !!}
                                            {!! Form::hidden('id', $user->id) !!}
                                                <button type="submit" class="btn btn-default">Edit</button>
                                        {!! Form::close() !!}
                                    </td>
                                    <td>
                                        {!! Form::open(array('url' => '/users/destroy' ,  'method' => 'delete')) !!}
                                            {!! Form::hidden('id', $user->id) !!}
                                                <button type="submit" class="btn btn-default">Delete</button>
                                        {!! Form::close() !!}
                                    </td>

                                  </tr>
                                 @endforeach
                            </tbody>
                    </table>

                </div>
            </div>
        </div>
    </div>
</div>

@endsection

【问题讨论】:

  • 你试过$user-&gt;admin = true;吗?
  • 这样做User::find(request-()-&gt;id)

标签: php laravel laravel-5


【解决方案1】:

您已添加布尔字段并尝试使用字符串值 ('1') 进行更新。这也可能是一个问题。

【讨论】:

  • 其实不是,不是这个问题。
  • 在 Form::open 函数中,你有 action 和 url 作为参数。我想,你可以同时给两个。如果您使用 url 路径,请确保使用有效参数从路由文件调用控制器。如果使用动作参数,请添加 $user_id 作为参数。 Form::open(array('action' =&gt; array('Users@makeAdmin', $user-&gt;id)))
【解决方案2】:

确保将新列添加到您的 User 模型中的 $fillable 字段,因为所有 Eloquent 模型都可以保护您免受批量赋值。

app/User.php

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'admin', 'email', 'password',
];

您也可以阅读Mass Assignment Docs

【讨论】:

  • 仍未更新
  • OP 没有使用批量分配。
猜你喜欢
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
  • 2019-01-24
  • 2014-04-29
相关资源
最近更新 更多