【问题标题】:How to work with Views without using PHP's "compact" function in LARAVEL如何在不使用 LARAVEL 中 PHP 的“紧凑”函数的情况下使用视图
【发布时间】:2017-08-09 23:14:52
【问题描述】:

我正在使用 laravel 从数据库中获取数据并将该数据或数据数组存储到变量中,例如 $tasks 从数据库中存储任务表的数据,直到一切正常,但是在处理 $task 变量期间,这是必要的使用“紧凑”功能?

谁能解释一下

Route::get('/test', function () {

$data   =   [
                'name'  =>  'Vrushal',
                'last'  =>  'Raut',
                'tasks' =>  [
                                'Programming',
                                'UI/UX Developement',
                                'Cloud Expert'
                            ]
            ];
            //return view('templates/test', compact($data)); //NOT WORKING
            //return view('templates/test', $data); // ITS WORKING
            return View::make('templates/test',$data); // ITS WORKING
}); 

还有数据库请解释一下

Route::get('/tasks', function(){

$tasks  =   DB::table('tasks')->get();

return view('templates/tasks', compact('tasks')); // ITS WORKING
//return View::make('templates/test',$tasks); // NOT WORKING
});

提前致谢!

【问题讨论】:

  • 警告,compact 忽略未设置的变量。
  • 实际上'compact'将变量的数量及其值作为一个数组。
  • 我想要数据库代码的解决方案,即 Route::get('/tasks', function(){ $tasks = DB::table('tasks')->get(); return view('templates/tasks', compact('tasks')); // ITS WORKING //return View::make('templates/test',$tasks); // NOT WORKING });
  • 如果您花一秒钟时间阅读compact 的手册,并且实际上还花时间查看从该查询返回的内容,您就会明白为什么会这样。
  • @lagbox 非常感谢我想我解决了问题,如果有任何问题请告诉您。

标签: php laravel function laravel-5


【解决方案1】:

compact('data')['data' => $data] 相同,因此要能够访问Vrushal 值,您需要在视图中执行此操作:

{{ $data['name'] }}

当你这样做时:

 View::make('templates/test', $data);

您可以通过以下方式获得Vrushal 值:

{{ $name }}

【讨论】:

    【解决方案2】:

    //return view('templates/test', compact($data)); //NOT WORKING 它不起作用,因为紧凑元素不需要美元符号。它应该是这样的:

    return view('templates.test', compact('data')); 然后您可以通过视图内的 $data[] 变量访问它。

    其他方式:

    return view('templates.test')->with('variable', $data); 并使用$variable[] 访问此视图

    【讨论】:

      【解决方案3】:

      compact — 创建包含变量及其值的数组 手动http://php.net/manual/en/function.compact.php

      <?php
      
      $city  = "San Francisco";
      $state = "CA";
      $event = "SIGGRAPH";
      
      $result = compact("event", "city", "state");
      print_r($result);
      //return view('templates/test', compact("event", "city", "state")); // ITS WORKING
      

      结果

      Array
      (
          [event] => SIGGRAPH
          [city] => San Francisco
          [state] => CA
      )
      

      $arr = array(
          "city"  => "San Francisco",
          "state" => "CA",
          "event" => "SIGGRAPH"
      );
      
      extract($arr);    
      $result = compact(array_keys($arr));
      print_r($result);
      //return view('templates/test', compact(array_keys($arr)); // ITS WORKING
      

      结果

      Array
      (
          [event] => SIGGRAPH
          [city] => San Francisco
          [state] => CA
      )
      

      $arr = array(
           "city"  => "San Francisco",
           "state" => "CA",
           "event" => "SIGGRAPH"
      );
      print_r($arr);
      //return view('templates/test', $data); // ITS WORKING
      

      结果

      Array
      (
          [event] => SIGGRAPH
          [city] => San Francisco
          [state] => CA
      )
      

      $arr = array(
           "city"  => "San Francisco",
           "state" => "CA",
           "event" => "SIGGRAPH"
      );
      $result = compact($arr);
      print_r($result);
      //return view('templates/test', compact($arr)); //NOT WORKING
      

      结果

      Array
      (
      
      )
      

      【讨论】:

        猜你喜欢
        • 2015-03-01
        • 2020-08-04
        • 1970-01-01
        • 2021-06-06
        • 2023-03-14
        • 2019-02-12
        • 2014-10-13
        • 1970-01-01
        • 2018-08-16
        相关资源
        最近更新 更多