我试图处理RunTimeException以通过SSH连接VPS。
这里是通过SSH与VPS连接的代码。
$server_ip = Input::get('server_ip');
$password = Input::get('password');
$validator = Validator::make(
['server_ip' => $server_ip],
['server_ip' => 'ip|required|unique:servers'],
['password' => $password],
['password' => 'required|confirmed']
);
if(!$validator->fails())
{
Config::set('remote.connections.production.host',$server_ip);
Config::set('remote.connections.production.username','root');
Config::set('remote.connections.production.password',$password);
Config::set('remote.connections.production.root','/');
$command = 'mysql --version';
$connection_status = SSH::run($command, function($line)
{
$this->output = $line.PHP_EOL;
});
if(!$connection_status)
return $this->output;
else
return view('dashboard.add_server');
}
else
return "Validation failed...";
它写在Laravel。如果我遇到SSH连接错误,它应该将我重定向到名为add_server
的视图。但是,我得到了Exception而不是重定向。这是我每次都得到的Errror而不是Redirection。
我想要的是,如果通过SSH与VPS有一些错误连接,它应该将我重定向到名为 add_server
的视图让我知道代码有什么问题。
答案 0 :(得分:3)
try
{
$connection_status = SSH::run($command, function($line)
{
$this->output = $line.PHP_EOL;
});
if(!$connection_status)
return $this->output;
}
catch(\RunTimeException $e)
{
return view('dashboard.add_server');
}
答案 1 :(得分:1)
您应该使用try-catch
try
{
$connection_status = SSH::run($command, function($line)
{
$this->output = $line.PHP_EOL;
});
if(!$connection_status)
return $this->output;
}
catch(RunTimeException $e)
{
return view('dashboard.add_server');
}
我不知道$connection_status
是否应该在成功连接时获得错误值,但除此之外,它应该有效。