【问题标题】:Store session data, routes and controller in laravel problem在 laravel 问题中存储会话数据、路由和控制器
【发布时间】:2021-03-16 02:16:52
【问题描述】:

控制器

WelcomeController.php

public function storeSession(Request $request, $data){

    $request->session()->put('srcode','data.usr_name');
    echo "Session stored.";
        
    return 1;
        

}

Welcome.blade.php

<form id="login" action="{{ url('/')}}" method="POST" >
    @csrf
                    
</form>
               
<!-- insert script to add event-->
<script>
                    
    //create new instance
    var api = new API("key");
                    
    //initialize api
    var records = api.result;
    console.log(records);

    api.init(function(){
                            
        //attach click event to the button
        $("#btnShowLogin").click(function(){
            //show login window                                
            api.login({type:'student'},function(result){
                //check result
                if(result.error==0){
                                        
                    console.log("OK");

                    $.ajax({

                        url: '/session',
                        type: 'POST',
                        data: result.details,
                                        
                        success: function(result){

                            if(result == 1){
                                                    
                                document.getElementById('login').submit();
                                console.log(result);

                            }
                         } 

                    });
                } 
            });

        });
    });

</script>

路线

Route::get('/session',[App\Http\Controllers\WelcomeController::class, 'storeSession'])->name('session.store');

错误

加载资源失败:服务器响应状态为 404(未找到)

【问题讨论】:

  • 访问哪个路由会出现 404 错误?错误是否提供任何堆栈跟踪,显示代码中的哪一行导致错误
  • public function storeSession(Request $request, $data){ 此行来自欢迎控制器,先生。
  • 我是 Laravel 的新手,想使用提供给我的 API 创建会话。我被告知要创建登录用户会话而不是使用数据库。
  • 当您尝试在浏览器中访问/session 或单击按钮并将ajax 请求发送到服务器时,您是否收到错误?你试过运行php artisan route:clear
  • Too few arguments to function App\Http\Controllers\WelcomeController::storeSession(), 1 passed in C:\Users\User\popuplogin\vendor\laravel\framework\src\Illuminate\Routing\Controller.php on line 54 and exactly 2 expected 这是我得到的错误。如果我去/会话。我检查了错误并将我带入同一行 public function storeSession(Request $request, $data){.

标签: javascript ajax laravel post controller


【解决方案1】:

你的控制器方法 storeSession 应该被定义为

class WelcomeController
{
    public function createSession(Request $request)
    {
        return view('welcome');
    }

    public function storeSession(Request $request)
    {
        //$request->session()->put('srcode','data.usr_name');

        //Store the usr_name value from data received via (Post) ajax request
        $request->session()->put('srcode',$request->usr_name);
        echo "Session stored.";
        
        return 1;
    }
}

路线:

Route::namespace('App\Http\Controllers')
    ->group(function(){
        //Display the page with script which sends ajax request via Post
        Route::get('/session',[WelcomeController::class, 'createSession'])->name('session.create');

        //Handle the ajax request and store data in session
        Route::post('/session',[WelcomeController::class, 'storeSession'])->name('session.store');

    });

【讨论】:

  • 好的。谢谢你。我会试试的。我可以给你发电子邮件吗?如果我需要帮助?
  • @Luffy 你可以通过推特或我的网站联系到我——都在我的个人资料中
  • 答案对您来说是否如预期的那样工作?
  • 从答案中删除了哪些“数据”-您能解释一下吗?
  • 很抱歉,我错过了您代码中的大部分语法 我认为控制器与我的代码相同,因为 $data 已经消失了,对此感到抱歉。但我在这条线上确实有问题Route::namespace('App\Http\Controllers') -&gt;group(function{ 。看起来像出乎意料的 {, 预期的 (.
猜你喜欢
  • 1970-01-01
  • 2019-11-26
  • 2021-04-09
  • 2013-11-14
  • 1970-01-01
  • 2023-03-27
  • 2017-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多