Laravel 5.1刚刚发布,我想知道如何告诉AuthController获取登录&从自定义目录注册视图?默认值为:resources/views/auth
...
特征 AuthenticateAndRegisterUsers 只有这个:
trait AuthenticatesAndRegistersUsers
{
use AuthenticatesUsers, RegistersUsers {
AuthenticatesUsers::redirectPath insteadof RegistersUsers;
}
}
答案 0 :(得分:2)
您在那里展示的代码只会填充一个函数:它告诉我们的特征是使用redirectPath
特征中的AuthenticatesUsers
而不是来自RegistersUsers
的特征。
如果您在AuthenticatesUsers
特征内部进行检查,则会找到getLogin()
方法。默认情况下,此定义为
public function getLogin()
{
return view('auth.login');
}
然后,只需覆盖控制器中的函数并返回另一个视图即可获得另一个视图。如果您出于某种原因希望从标准resources/Views
以外的目录加载您的观看次数,则可以通过调用View::addLocation($path)
来执行此操作(您将在Illuminate\View\FileViewFinder
中找到此定义} Illuminate\View\ViewFinderInterface
。
此外,请注意,更改auth views目录将无法更改域或类似内容。这取决于函数名称(根据Route::Controller($uri, $controller, $names=[])
的定义。有关路由如何工作的更多详细信息,我建议只查看Illuminate\Routing\Router
。
答案 1 :(得分:0)
对于那些使用laravel 5.2的人,你只需要覆盖loginView的属性值
https://github.com/laravel/framework/blob/5.2/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
ImageView btnOpen = (ImageView) findViewById(R.id.image_view_open);
btnOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(ActivityViewImage.this, v);
getMenuInflater().inflate(R.menu.context_menu_image, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
//do something
return true;
}
});
popupMenu.show();
}
});
所以要覆盖登录视图路径,你只需要这样做
public function showLoginForm()
{
$view = property_exists($this, 'loginView')
? $this->loginView : 'auth.authenticate';
if (view()->exists($view)) {
return view($view);
}
return view('auth.login');
}