【问题标题】:Return value from command laravel从命令 laravel 返回值
【发布时间】:2022-01-05 06:38:52
【问题描述】:

我正在尝试从 nodejs 访问我的 laravel 系统中的数据,我想使用 laravel 命令来做到这一点,所以我将在 nodejs 中运行命令并使用命令的输出,我的问题是命令是 no返回值,它只返回 int 值 0/1
所以我需要获取该数据才能在我的节点 js 代码中使用它 这是我在 laravel 中的命令

  public function handle()
    {     
        $router_id = $this->argument('router_id');
        $nas=NAS::withoutGlobalScope('company_id')->with('mikrotik')->where("id",$router_id)->first();
        if($nas)
        {
            $login= $nas->mikrotik->login;
            $password=$nas->mikrotik->password;
            $port=$nas->mikrotik->port;

            return    json_encode(['username'=>$login,'password'=>$password,'port'=>$port]);
        }
    }

我如何从这个命令获得输出,或者至少有另一种方法可以完成我的工作(我不需要 API),因为我每次安装时都需要更改被调用 API 地址的代码系统

【问题讨论】:

  • 从 Node.js 访问 Laravel Web API 可能更安全一些。否则你必须直接从 Node 访问 shell,你需要小心。
  • 感谢您的回复,是的,我知道这一点,但我的问题是命令返回空值,我怎样才能使该命令返回值?

标签: node.js laravel command laravel-artisan


【解决方案1】:

使用$this->line()

public function handle()
{     
    $router_id = $this->argument('router_id');
    $nas = NAS::withoutGlobalScope('company_id')->with('mikrotik')->where("id",$router_id)->first();

    if($nas)
    {
        $login = $nas->mikrotik->login;
        $password = $nas->mikrotik->password;
        $port = $nas->mikrotik->port;

        $this->line(json_encode(['username'=>$login,'password'=>$password,'port'=>$port]));
        return;

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2017-09-11
    • 2015-06-04
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多