【问题标题】:Request data from controller, to route, to view从控制器请求数据,路由,查看
【发布时间】:2014-05-30 06:29:25
【问题描述】:

我的 HomeController 中有一个方法需要一些参数才能工作。

public function mcQuery($ip, $port){
    $Query = new MinecraftQuery();
     try
        {
            $Query->Connect( $ip, $port );

            return $Query;
        }
        catch( MinecraftQueryException $e )
        {
            return false;
        }
}

此方法附带一个 from this GitHub 类。

我需要从路由中请求此方法...

Route::post('/servers', function(){
         $ip = Input::get('ip');
         $port = Input::get('port');
        // ... Get info from mcQuery($ip, $port);
         return $info; 
});

它将数据发送到我的 ajax 调用。

$.ajax({
    url: '/servers',
    type: 'POST',
    data: {ip: serverIp, port: serverPort},
})
.done(function(data) {
    console.log("success" + data);
})

问题是,我不知道在我的路由文件中调用该方法(带有参数)来获取数据。我应该怎么办?我需要将 serverIp 和 serverPort 传递给 mcQuery 并将其返回。

【问题讨论】:

  • 您正在使用 lambda 函数作为您的路由方法。也许您应该将其更改为控制器并在那里添加您的代码。例如,您可以在HomeController 中添加servers 方法并在那里调用mcQuery。如果您打算将数据用于 ajax 调用,您可能希望将其编码为 json。

标签: php jquery laravel


【解决方案1】:

你可以试试这个:

Route::post('/servers', function(){
    $ip = Input::get('ip');
    $port = Input::get('port');

    $home = App::make('HomeController');
    $info = $home->mcQuery($ip, $port);
    return $info;
});

【讨论】:

  • 再次感谢您的帮助。对此,我真的非常感激。可悲的是,我在控制台中收到 500(内部服务器错误)。
  • 你的HomeController和我给的名字一样吗?
  • 确保你这样做了。
  • 你的意思是我的HomeController叫HomeController吗?是的。
  • 确保您在HomeController 中的mcQuery 方法在做正确的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2017-09-06
  • 2015-07-22
  • 1970-01-01
  • 2018-02-12
  • 2021-04-22
相关资源
最近更新 更多