如何在Laravel 4.2中将字符串回显到视图中?

时间:2017-08-17 21:00:42

标签: php laravel laravel-4 artisan

我正在使用Laravel 4.2框架(很快就会升级)并从控制器调用artisan命令并返回重定向。

我的问题是当我调用命令时,命令echo给我一些东西(当我从终端调用它时很有用)但现在因为我在方法中使用它,我想要相同的{ {1}}在我的视图中显示为Flash消息。

我将编写以下示例,以澄清我的问题。

我的命令:

echos

我的控制器:

public function fire()
{ 
    // Do stuff.
    echo $vars 
}

所以我想在我的观点中显示function foo() { // Some input here Artisan::call('command'); return Redirect::back(); // <-- want to add the echos of the command. } ,我不确定它是否可能,如果不是可以接受可以给我相同概念的其他建议(请记住,如果我更换了$var当我运行命令时,它会在视图和终端中显示其他内容。)

注意:我尝试过Ajax,但我的问题是我发送了一个文件作为参数,尝试了FormData对象,但它并没有与我合作。

2 个答案:

答案 0 :(得分:2)

在会话中存储数据是在多个请求中保留持久数据的好方法。会话闪烁是一种仅为下一个请求保留数据的方法,非常适合重定向。当出现验证错误时,Laravel会在内部使用此输入数据。

https://laravel.com/docs/4.2/session#flash-data

Session::flash('key', 'value');

这只会在下一个请求中保留,您可以使用Session::get('key')来检索它。

答案 1 :(得分:0)

我通过改变命令来解决问题。

<强>命令:

function fire()
{
  // replaced the echo with the following.
  $this->info('what ever you want ur message you want to put in console');

 }

<强>控制器

function foo()
{

  $output =  new BufferedOutput();

  Artisan::call('command', [arguments], $output);

  return Redirect::back()->with('flash_message', $output->fetch());
}

猜测缓冲输出是否适用于Laravel Documentations而不是echo's

中的命令输出