我是Laravel的新手。我正在使用 Iaravel 5.7 。我有一个Laravel应用程序,可以从管理面板更改静态网站内容。
如果用户要访问管理面板,则需要先登录;
表示如果用户键入www.example.com/admin/
并且用户已经登录,则可以进入管理面板,但是如果用户未登录,则将其重定向到www.example.com/admin/login
页面。
到这里,所有重定向都可以从控制器正常进行;但问题从这里开始。
如果用户通过输入www.example.com/admin/
访问管理面板,则该URL返回404 error
,如果用户键入www.example.com/admin/admin/
,则该URL返回我想要查看的正确结果。我不明白为什么会这样。我所有的管理员视图都在resources/views/admin/
文件夹下。
我的路线文件(web.php)
Route::get('/', 'todocontroller@index');
Route::get('about', 'todocontroller@about');
Route::get('career', 'todocontroller@career');
Route::get('contact', 'todocontroller@contact');
// for admin panel
Route::group(array('prefix' => 'admin'), function()
{
Route::get('/', 'adminController@index');
Route::get('login', 'adminController@getLoginPage');
Route::post('login', 'adminController@login');
});
todocontroller.php
控制器文件
public function index() {
$homepages=home_page::where('slider','1')->orderBy('position')->get();
$aboutContent=about_page::find(1);
$whatWeDo=home_page::where('s_heading','!=','')->selectRaw('count(*) AS cnt, s_heading')->groupBy('s_heading')->first();
$whatWe=home_page::where('s_heading','!=','')->get();
return view('index',compact('homepages','aboutContent','whatWeDo','whatWe'));
}
我的控制器文件(adminController.php
)
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
class adminController extends Controller
{
public function index(){
if(request()->hasCookie('user_id')){
return view('admin.index');
}else{
return redirect('admin/login');
}
}
public function getLoginPage(){
return view('admin.login');
}
}
任何人的帮助将不胜感激。谢谢。