Laravel - 返回SSH输出

5
感谢对该主题的关注。我在Laravel方面还很新,有一个小问题,也许很容易解决! 我在Laravel中有一个SSH模块,它的工作方式如下: 用户使用Linux命令填充文本区域元素。 使用Ajax将命令传递给'controllers'文件夹中名为getExecute()的方法 我希望此方法返回SSH服务器的完整响应,但实际上并没有发生。该方法只返回一个空格。 例如:我传递命令'ls -la',我的响应是类似终端上找到的所有文件夹。 谁能帮帮我吗? 以下是我的代码:
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;
}

注意: Ajax 连接已经测试通过,一切正常!谢谢!


通常更好的做法是将解决方案作为答案发布,并将其标记为已接受,即使你自己回答了问题。 ;) - Unnawut
谢谢Unnawut,我会这样做。 - pedroroccon
1个回答

2

终于解决了!下面是解决方案:

首先,在我的类中创建了一个名为 $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方法。感谢您的所有帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接