Php Laravel-返回SSH输出

Php Laravel-返回SSH输出,php,ajax,laravel,ssh,Php,Ajax,Laravel,Ssh,谢谢大家对这个话题感兴趣。我是拉威尔的新手,我有一个小问题。也许很简单! 我的Laravel中有一个SSH模块,其工作方式如下: 用户使用Linux命令填充textarea元素。 该命令通过Ajax传递给“controllers”文件夹中名为getExecute()的方法 我希望此方法返回SSH服务器的完整响应,但这并没有发生。该方法返回的唯一内容是一个空格 例如:我传递命令“ls-la”,我的响应是Linux找到的所有文件夹,就像在终端上一样。 有人能帮我吗? 这是我的密码: public f

谢谢大家对这个话题感兴趣。我是拉威尔的新手,我有一个小问题。也许很简单! 我的Laravel中有一个SSH模块,其工作方式如下: 用户使用Linux命令填充textarea元素。 该命令通过Ajax传递给“controllers”文件夹中名为getExecute()的方法 我希望此方法返回SSH服务器的完整响应,但这并没有发生。该方法返回的唯一内容是一个空格

例如:我传递命令“ls-la”,我的响应是Linux找到的所有文件夹,就像在终端上一样。 有人能帮我吗? 这是我的密码:

public function getExecute()
{
    if(\Request::ajax()):

        $ssh_command = \Input::get('ssh_command');
        $ssh_response = null;

        \SSH::run($ssh_command, function($line)
        {
            return $line.PHP_EOL;
        });

    endif;
}
OBS:Ajax连接已经过测试,一切正常!
谢谢大家!

终于解决了!解决方案如下:

首先,我在类中创建了一个名为$output的变量

private $output;
然后我将我的方法修改为:

public function postExecute()
{
    $ssh_command = \Input::get('ssh_command');
    $ssh_response = \SSH::run($ssh_command, function($line)
    {
        $this->output = $line.PHP_EOL;
    });

    return $this->output;
}

我的方法不是更多的Ajax,但我希望我所要做的就是像以前一样回滚到我的Ajax方法。谢谢大家

通常更倾向于将解决方案(即使您是被回答的人)作为答案,并将其标记为已接受;)谢谢,我会的