用户编辑资源不起作用

时间:2016-04-07 13:52:12

标签: php laravel blade laravel-routing

我的用户资源已在users表中链接。

我的路线:

Route::resource('user', 'UserController');

UserController.php

public function edit($id)
{
    $user = User::find($id);
    return view('user.edit')->with(array('user'=>$user));
}

public function update(Request $request, $id)
{
    $rules = array(
        'name' => 'required',
    );

    $validator = Validator::make(Input::all(), $rules);
    if ($validator->fails())
    {
        return Redirect::to('user/'.$id.'/edit')->withInput()->withErrors($validator);
    }
}

我的观点

{!! Form::model($user, array('route' => array('user.update', $user->id), 'method' => 'PUT', 'class' => 'form-horizontal')) !!}
    @if (count($errors) > 0)
    <div class="alert alert-danger">
            <strong>Whoops!</strong> There were some problems with your input.<br><br>
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

    <div class="flash-message">
        @foreach (['danger', 'warning', 'success', 'info'] as $msg)
          @if(Session::has('alert-' . $msg))
          <p class="alert alert-{{ $msg }}">{{ Session::get('alert-' . $msg) }}</p>
          @endif
        @endforeach
    </div>

    <div class="form-group"><label class="col-sm-2 control-label">Name</label>
        <div class="col-sm-10"><input type="text" name="name" id="name" value="{{$user->name}}" class="form-control"></div>
    </div>

    <div class="form-group"><label class="col-sm-2 control-label">ID Number</label>
        <div class="col-sm-10"><input type="text" name="id_number" id="id_number" value="{{$user->id_number}}" class="form-control"></div>
    </div>

    <div class="hr-line-dashed"></div>
    <div class="form-group">
        <div class="col-sm-4 col-sm-offset-2">
            <button class="btn btn-primary" type="submit">Save changes</button>
        </div>
    </div>
{!! Form::close() !!}

所以使用这个设置我希望当点击我页面上的提交按钮时,它将像我的其他资源一样进入update()功能。但问题是,当我点击提交时,它会指示我

http://localhost/hrs/public/user/1

和一个没有错误的白色空白页面。这意味着它会转到我的update功能吗?我跟我的其他资源一样遵循相同的模式,这是唯一一个不起作用的模式。

2 个答案:

答案 0 :(得分:0)

您的网络服务器配置错误。您应该将Web服务器(通常是Apache或nginx)指向Laravel项目的public目录。之后重新启动Web服务器。

例如对于Apache,正确的配置将是这样的:

DocumentRoot "C:/xampp/htdocs/hrs/public"
<Directory "C:/xampp/htdocs/hrs/public">

答案 1 :(得分:0)

发现问题,我没有验证的else部分。因为那是事件发生的地方。由于我没有,它什么都不做。

    $validator = Validator::make(Input::all(), $rules);
    if ($validator->fails())
    {
        return Redirect::to('user/'.$id.'/edit')->withInput()->withErrors($validator);
    }
    else
    {
        dd($rules);
    }