【问题标题】:Pass data from controller to view laravel 5从控制器传递数据以查看 laravel 5
【发布时间】:2015-12-27 01:19:46
【问题描述】:

控制器

public function codingPuzzleProcess()
{

    $word     = Input::get('word');
    $length   = strlen($word);


    return Redirect::to('/coding-puzzle')
        ->with('word', $word )
        ->with('length', $length )
        ->with('success','Your word was submit succesfully!');

}

查看

我尝试像这样在刀片视图中访问这些数据

{!!$word or '' !!} | {!!$length or '' !!}

我不知道为什么我什么也没打印。我确定我的

$word = 'love' with length of 4

对此的任何提示/建议将不胜感激!

【问题讨论】:

  • 当然,我会试试的。
  • 我得到了空白输出。
  • 这是GETPOST 请求吗?
  • 1 with(),仍然不显示任何内容。
  • 这是一个 GET。我想。我将用我的路线声明更新我的帖子以供您澄清。

标签: php laravel model-view-controller laravel-5 blade


【解决方案1】:

重定向不会将控制权传递给视图,它会将控制权传递给客户端,然后客户端向应用程序发出另一个单独的请求。

请求将由控制器处理,该控制器可以将数据发送到我认为您正在尝试的视图。但是,当您像这样重定向和传递数据时,数据不仅会神奇地在当前范围内可用。相反,它会神奇地出现在会话闪存数据中:

{!! $word = session('word') ? $word : '' !!}

Manual

【讨论】:

  • 我的词是aaa,长度=3,怎么会当我这样做{!! session('word') or '' !!} | {!!session('length') or '' !!}我得到1 | 1
  • 我认为是因为$a or $b 的结果是一个布尔值。试试{!! $word = session('word') ? $word : '' !!}
【解决方案2】:

首先,你不需要重定向,你可以使用返回视图语句并发送数据,像这样:

return view('coding-puzzle', ['word' => $word, 'lenght' => $lenght, 'success' => 'Your word was submit succesfully!']);

然后在您的视图中,您可以按照您想要的方式访问这些变量: {{$word}}(“转义”变量值或{!!$word!!} 不转义它。

现在,您确实需要进行重定向,因此您无法以“正常”方式访问这些变量,您需要通过会话访问它,如下所示:

@if(Session::has('word'))
    {{Session::get('word')}}
@endif

和其他人一样。

希望对你有帮助。

让我邀请您参加 Laravel 循序渐进的课程以获得更深入的知识:Learn Laravel Step By Step

最好的祝愿。

【讨论】:

    【解决方案3】:

    您对重定向响应的with() 方法和视图类的with() 方法感到困惑。尽管相似,但它们的作用不同。第一个,在Illuminate\Http\RedirectResponse 中定义,将值闪烁到会话中。第二个,定义在Illuminate\View\View,将值传递给视图。

    由于您要返回重定向响应,因此您的值将无法作为视图中的变量直接访问。您将需要使用 session()old() helper 从您的视图中访问这些值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 2017-03-03
      • 2017-07-27
      • 1970-01-01
      • 2012-12-22
      相关资源
      最近更新 更多