簡體   English   中英

如何為Laravel的用戶模型創建編輯表單?

[英]How can I create an edit form for Laravel's user model?

我想使用laravel 5.2中內置的默認身份驗證,但是我的應用程序不需要讓用戶注冊自己,因為用戶是管理員儀表板的授權用戶。 只有當前現有的用戶才能創建用戶。

因此,我需要能夠完成幾件事:

  • 需要禁用公共用戶注冊
  • 需要允許經過身份驗證的用戶注冊新用戶,訪問注冊表格
  • 需要提供一個表格,以允許經過身份驗證的用戶編輯用戶,允許密碼重置,名稱更改等。

我將在哪里為這些視圖構建控制器方法? 我應該完全構建一個新的userscontroller,還是直接將create和edit方法寫入authcontroller中? 總體而言,基於Laravel的auth構建此類系統的最佳實踐是什么。

聽起來您需要將通過函數調用插入的路由引入文件本身。

這樣做使您能夠禁用注冊路由。 因此,除了在您的route.php中使用Router::auth() ,還可以將它們拉入自己並留下不需要的東西: https : //github.com/laravel/framework/blob/ea9fd03f5c5aef12018812e22e82979d914fef93/src/Illuminate/路由/Router.php#L367

您需要自己編寫其余的代碼。 一個很好的起點是獲取注冊視圖,並將其放入表單中以供登錄用戶使用。 當用戶創建*新用戶時,您將運行驗證(電子郵件=>必填,密碼=>必填,等等),您將看到類似

// this would be in something like public function createUser(Request $request)
$rules = [
  'email' => 'required|unique:users,email',
  'password' => 'required|confirmed'
];

// validate the request, if it doesn't pass it will redirect back with input and errors
$this->validate($request, $rules);

// create the user now
User::create(['email' => $request->input('email'), 'password' => \Hash::make($request->input('password')]);

其余的工作由您決定。

要為公共用戶禁用注冊,您可以刪除視圖中的所有鏈接以注冊路由,還可以編輯AuthController方法showRegistrationForm()register() ,第一個加載視圖,然后可以重定向到“登錄”路由,第二個是保存用戶的POST。

對於用戶表上的新方法,我認為最好是制作一個UserController並將您的邏輯從Laravel的auth控制器上移開,這里的用戶將作為任何資源使用,但是您將需要驗證是否正在嘗試添加經過身份驗證的用戶另一個用戶對此具有特權。

對於此添加新用戶的權限取決於您的系統,我認為,如果您的系統僅需要管理員用戶來添加新用戶,則無需制作所有“角色和權限”,您可以從另一個列,但如果您將擁有更多權限控制的區域或操作,請考慮將其作為ACL會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM