当前位置: 首页 > 知识库问答 >
问题:

在拉雷维尔如何进入这条路线?

皇甫雨华
2023-03-14

我的应用程序不想进入我的游戏控制器。phpgetIndex()函数。它确实在group函数中,我用dd('test')vardump对其进行了测试。它会一直走下去,直到它撞上“游戏”路线,然后它就不想走这条路线。

routes.php:

Route::group(array('before' => 'auth'), function()
{
    //dd('test') , this worked
    Route::get('/game', array('as' => 'game','uses' =>'GameController@getIndex'));
});

GameController.php:

class GameController extends BaseController {

    public function getIndex()
    {
        //dd('test') , he didnt do this dump
        $items = DB::table('tblItems_Users')->where('FK_user_id', '=', Auth::user()->PK_user_id)
            ->join('tblItems', 'FK_item_id', '=', 'PK_item_id')->where('is_checked', '=', 0)
            ->get();
        $item = $items[array_rand($items)];
        return View::make('game')->with('item', $item);
     }

}

AuthenticationController。php:

class AuthenticationController extends Controller
{

    //login methode voor de http-get login request --> loginformulier weergeven
    public function getLogin()
    {
        return View::make('login');
    }

    //login methode voor de http-post login request, wanneer er op de submitknop 'inloggen' gedrukt w
    public function postLogin()
    {
        //validation rules toevoegen, zodat er geen leeg inlogformulier gesubmit kan worden
        $validationRules = array(   'username' => 'required',   
                                    'password' => 'required'); //email is verplicht, en moet volgens emailformaat //paswd is verplicht, en minimum 8karakters lang

        //The first argument passed to the make method is the data under validation. The second argument is the validation rules that should be applied to the data.
        $validator = Validator::make(Input::all(), $validationRules);

        if ($validator->fails()) 
        {
            dd('validator fails');

            return Redirect::route('login')->withErrors($validator)->withInput(Input::only('username')); 

        }

        $inputUsername = Input::get('username');
        $inputPassword = Input::get('password');

        if (Auth::attempt(array('username' => $inputUsername, 'password' => $inputPassword)))
        {
            //dd('test')  => this is working
            return Redirect::intended('/game');
        }
        else
        {
            $users = DB::table('tblUsers')->lists('username');

            if(in_array($inputUsername, $users))
            {
                return Redirect::route('login')->withErrors(array('Oops! The password you entered is incorrect.')); 
            }
            else
            {
                $this->storeUser();
                $this->postLogin();
            }
        }
    }

    public function getLogout()
    {
        Auth::logout();
        return Redirect::route('getLogin')->with('logoutSuccessMessage', "You're succesfully signed out! See you next time!"); 
    }



    public function storeUser()
    {


        $rules = array( 'username'      => 'required|max:100',
                        'password'      => 'required|max:60'); 

        $validator = Validator::make(Input::all(), $rules);

        if ($validator->fails()) 
        {
            return Redirect::route('login')->withErrors($validator)->withInput(Input::only('username')); 
        }
        else
        {


            $inputPassword = Input::get('password');
            $hashedPassword = Hash::make($inputPassword);

            $user = new User;


            $user->username                 = Input::get('username');
            $user->password                 = $hashedPassword;

            $itemids = DB::table('tblItems')->lists('PK_item_id');

            $user->save();


            foreach($itemids as $itemid)
            {

                $user->items()->attach($itemid);

            }


        }

    }

}

目标是当我的用户登录时转到游戏页面,这是因为Laravel会话cookie已经制作完成(我检查过),我可以通过键入http://localhost:8000/user/game手动访问路由。我也在做一个新用户,然后在它被制作出来后,他会自动登录到身份验证Controller.php文件中。(我总是被重定向到http://localhost:8000,奇怪的是这个页面总是空的。

共有1个答案

壤驷心思
2023-03-14

我修复了它,似乎postLogin()方法中有一个postLogin()方法。这是导致错误的原因。我在AuthenticationController中更改了这些行,它成功了。

替换这些行:

$this->postLogin();

有了这些:

if (Auth::attempt(array('username' => $inputUsername, 'password' => $inputPassword)))
        {
            return Redirect::to('game');    
        }
 类似资料:
  • 要从一开始就阻止您,没有权限问题/存储是递归的,整个项目文件夹由apache:apache存储 我甚至将日志文件重命名为-old和apache创建了一个新的。。。如果它没有实际的写权限,就不允许它创建它。 在CentOS 6.6版(最终版)下运行 从git部署了这个项目,这个家园为我的同事工作。 完全错误: [2015年5月18日星期一10:17:58][error][client 86.124.

  • 我在本地运行的Laravel应用程序中有一个登录页面,但在生产服务器上,我收到以下错误消息(Laravel.log) 在应用/存储/视图/8d74d14da5e7fbd7b4984adefddd5a1b中生成的代码是: 有什么想法吗? 谢谢你

  • 我在中编写查询时遇到问题。 我的疑问是 现在我想把这个查询转换成laravel eloquent。

  • 我有个急事。我第一次尝试使用Laravel。为此,我使用Wamp。我不知道这是否重要,但我将wamp的DocumentRoot设置在以下地址: 我在一个名为Sites的文件夹中为许多不同的网站使用wamp。当我访问其中一个站点时,我会转到:localhost/Sites/thewebsite。所以我真正想做的就是去掉Laravel网站路径中的公共文件夹。 就目前而言,我做到了: > 更改httpd

  • 所以我正在尝试为我的网站实现一个支付解决方案,经过相当多的研究,我仍然缺乏一个完整的解决方案。我正在运行Laravel 5.0,需要一般购物车付款功能。我想我会发布这篇文章,试图创建一个参考,以帮助其他可能有这个问题的人。我已经把测试事务放到了Paypal的沙箱中,这似乎是砖墙的所在,但是一个完整的概述会很有帮助。我将列出我需要克服的问题,以便解决一些问题。 完成支付解决方案实施需要解决的问题 >