Sty*_*hon 1 php forms validation laravel laravel-5
我有一个提交给控制器的表单,该控制器验证数据。如果验证失败,它会重定向回输入和错误。这是处理表单提交的方法:
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller {
/**
* Create a new user.
*
* @param Reqeust $request
*
* @return Void
*/
public function postCreate(Request $request)
{
$user = new User;
$rules = $user->rules();
$rules['password'] = 'required|confirmed|min:8';
$v = \Validator::make($request->except('_token', 'roles'), $rules);
if ($v->fails())
{
return redirect()->back()->withInput($request->except('_token', 'password', 'password_confirmation'))->withErrors($v);
}
$user->fill($request->except('_token', 'password', 'password_confirmation'));
$user->password = \Hash::make($request->input('password'));
$user->save();
return redirect()->route('webmanAccounts')->with('messages', [['text' => 'User account created', 'class' => 'alert-success']]);
}
Run Code Online (Sandbox Code Playgroud)
在显示表单的页面上,我检查name字段之一是否存在,如果存在,则使用数据填充 User 对象。问题input是总是空的。
<?php namespace BackEnd;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Request as RequestFacade;
use App\Http\Controllers\Controller;
use App\Models\Role;
use App\Models\User;
class UserController extends Controller {
public function __construct(Request $request)
{
if ( ! $request->user()->can('accounts'))
{
return abort(403, 'You do not have permission to access this page.');
}
}
/**
* Display the create new user form and process any error messages.
*
* @param Reqeust $request
*
* @return View
*/
public function create(Request $request)
{
$user = new User;
dump(RequestFacade::all());
if (RequestFacade::has('name'))
{
$user->fill(RequestFacade::except('_token', 'roles'));
foreach (RequestFacade::only('roles') as $role)
{
$user->roles()->add($role);
}
}
return view('backend.user.create', ['title' => 'Website Manager :: Create New Account', 'user' => $user, 'roles' => Role::all()]);
}
Run Code Online (Sandbox Code Playgroud)
我试过RequestFacade,$request和Input,都显示为空。为什么数据没有被传回?
更奇怪的是,我有另一个项目,它使用几乎相同的代码并且运行良好。为什么它适用于一个项目而不适用于另一个项目!?
当您使用该withInput()方法时,数据将作为“旧”数据闪存到会话中。
$request->old() 应该给你一个所有“旧”数据的数组。
$request->old('name') 应该给你“旧”的名字数据。
| 归档时间: |
|
| 查看次数: |
3948 次 |
| 最近记录: |