我有一個表單提交給驗證數據的控制器。如果驗證失敗,它將重定向回輸入和錯誤。這是與表單提交交易的方法: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']]);
}
在顯示我檢查的形式,看是否name
的領域之一,是目前如果是填充了數據的用戶對象的頁面。問題是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()]);
}
我已經試過RequestFacade
,$request
和Input
,全部顯示爲空。爲什麼數據不被傳回?
爲了增加這種奇怪感,我有另一個使用幾乎相同的代碼的項目,並且工作得很好。爲什麼它會爲一個項目工作,但不適用於另一個項目!?
當您重新定位用戶時,您將失去所有發佈的數據。在重定向之前將發佈數據存儲在會話中。或者在錯誤查找頁面上呈現帖子表單。 – Tschallacka
你的視角在哪裏? –
@MichaelDibbets事實並非如此。正如我在我的文章中所說的,使用'withInput()'在我的其他項目中工作得很好。 – Styphon