【问题标题】:Passing request parameter to View - Laravel将请求参数传递给 View - Laravel
【发布时间】:2016-04-01 17:34:49
【问题描述】:

是否可以将route 参数传递给控制器​​,然后传递给laravel 中的视图?

示例;

我有下面的路线;

Route::get('post/{id}/{name}', 'BlogController@post')->name('blog-post');

我想在我的控制器中将{id}{name} 传递给我的视图

class BlogController extends Controller
{
    //
     public function post () {

     //get id and name and pass it to the view

        return view('pages.blog.post');
    }
}

【问题讨论】:

    标签: php laravel laravel-5 blade


    【解决方案1】:

    你可以使用:

    public function post ($id, $name) 
    {
       return view('pages.blog.post', ['name' => $name, 'id' => $id]);
    }
    

    甚至更短:

    public function post ($id, $name) 
    {
       return view('pages.blog.post', compact('name', 'id'));
    }
    

    编辑如果您需要将其作为 JSON 返回,您可以简单地执行以下操作:

    public function post ($id, $name) 
    {
       return view('pages.blog.post', ['json' => json_encode(compact('name', 'id'))]);
    }
    

    【讨论】:

    • 在我看来,我可以通过这种方式查看回显数据{{$name}}。我怎样才能将其传递给JavaScript?或者给它申请json_encode
    • 您可以简单地将其传递给 JavaScript 设置值,例如 <script>var = {{$name}}</script> 或者您可以使用 <span id="name">{{$name}}</span> 并使用 JavaScript 获取带有 id='name' 的元素的值
    • 当我执行var = {{$name}} 时,我的IDE 抛出了一个错误expression expected.. 通常我只会执行<?php echo $name ?>,但我使用的是blade,它不支持这样的
    • @moh.ABK 抱歉当然应该是<script>var name = '{{$name}}'</script>
    【解决方案2】:

    这样的东西有用吗?

    class BlogController extends Controller
    {
        //
         public function post ($id, $name) {
    
         //get id and name and pass it to the view
    
            return view('pages.blog.post', ['name' => $name, 'id' => $id]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-18
      • 2021-04-28
      • 2012-01-13
      • 1970-01-01
      • 2016-01-17
      • 2016-03-13
      • 1970-01-01
      • 2015-08-27
      • 2015-11-25
      相关资源
      最近更新 更多