【发布时间】:2016-09-06 22:12:57
【问题描述】:
当我点击提交按钮时,什么都没有发生,它只是刷新页面。
这是我的代码:
app/Http/routes.php
Route::group(['middleware' => ['web']], function () {
Route::get('profile/edit', 'UserController@editProfile');
Route::post('update_name', 'UserController@updateName');
});
app/Http/Request/UpdateNameRequest.php
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use Illuminate\Support\Facades\Auth;
class UpdateNameRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return Auth::check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'first_name' => 'required|min:2|alpha',
'last_name' => 'required|min:2|alpha',
];
}
}
app/Http/Controllers/UserController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests;
use App\User;
class UserController extends Controller
{
public function __construct() {
$this->middleware('auth');
}
public function editProfile() {
if (Auth::user()->role_id === 3) {
return view('profile.crew.edit');
}
}
public function updateName(Requests\UpdateNameRequest $request) {
return dd($request->all());
}
}
这是 html 表单
{!! Form::open(array('url' => 'update_name')) !!}
<div class="form-group{{ $errors->has('first_name') ? ' has-error' : '' }}">
<label class="control-label">First Name</label>
<input type="text" class="form-control" name="first_name" value="{{ old('first_name') }}" placeholder="{{ Auth::user()->first_name }}">
@if ($errors->has('first_name'))
<span class="help-block">
<strong>{{ $errors->first('first_name') }}</strong>
</span>
@endif
</div>
<div class="form-group{{ $errors->has('last_name') ? ' has-error' : '' }}">
<label class="control-label">Last Name</label>
<input type="text" class="form-control" name="last_name" value="{{ old('last_name') }}" placeholder="{{ Auth::user()->last_name }}">
@if ($errors->has('last_name'))
<span class="help-block">
<strong>{{ $errors->first('last_name') }}</strong>
</span>
@endif
</div>
<button type="submit" class="btn btn-success">Update name</button>
{!! Form::close() !!}
表格输出供参考
<form method="POST" action="http://localhost:8000/update_name" accept-charset="UTF-8">
<input name="_token" type="hidden" value="VViupfPaPCQCk5aeUdc27Pt2Z8J7Hx1Y2khC0IY9">
<div class="form-group">
<label class="control-label">First Name</label>
<input type="text" class="form-control" name="first_name" value="" placeholder="Hans">
</div>
<div class="form-group">
<label class="control-label">Last Name</label>
<input type="text" class="form-control" name="last_name" value="" placeholder="Padberg">
</div>
<button type="submit" class="btn btn-success">Update name</button>
</form>
这是我在 php artisan route:list 中的输出
+--------+----------+-------------------------+------+-----------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | home | | App\Http\Controllers\HomeController@index | web,web,auth |
| | GET|HEAD | login | | App\Http\Controllers\Auth\AuthController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\AuthController@login | web,guest |
| | GET|HEAD | logout | | App\Http\Controllers\Auth\AuthController@logout | web |
| | POST | password/email | | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token?} | | App\Http\Controllers\Auth\PasswordController@showResetForm | web,guest |
| | GET|HEAD | profile | | App\Http\Controllers\UserController@getProfile | web,web,auth |
| | GET|HEAD | profile/edit | | App\Http\Controllers\UserController@editProfile | web,web,auth |
| | GET|HEAD | register | | App\Http\Controllers\Auth\AuthController@showRegistrationForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\AuthController@register | web,guest |
| | POST | update_email | | App\Http\Controllers\UserController@updateEmail | web,web,auth |
| | POST | update_name | | App\Http\Controllers\UserController@updateName | web,web,auth |
| | POST | update_password | | App\Http\Controllers\UserController@updatePassword | web,web,auth |
| | POST | update_profile_picture | | App\Http\Controllers\UserController@updateProfilePicture | web,web,auth |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+--------------+
【问题讨论】:
-
你确定这条路径是正确的? public function updateName(Requests\UpdateNameRequest $request) 我认为应该只有“UpdateNameRequest”
-
是的,我确定它是正确的路径
-
我试图按照你对我说的方式运行它,但它给了我这个错误
Class App\Http\Controllers\UpdateNameRequest does not exist -
呃..好的..我在那里找不到任何错误。正如您所说的页面只是刷新,您可以在视图上显示所有错误,以检查是否有其他东西阻止您的验证。 pastebin.com/igHK5bif
-
你能不能把
web中间件去掉再试试。 .
标签: php validation laravel request