【问题标题】:Pass Data With Array in Laravel 6?在 Laravel 6 中使用数组传递数据?
【发布时间】:2019-12-27 07:04:00
【问题描述】:

在 CodeIgniter 3.x 中,我们可以使用以下代码通过数组传递数据:

$data=array(
   'apartment' => $this->apartmentmodel->get_all(),
   'title' => "List Apartement"
);
$this->load->view('apartment/index',$data);

但是,在我的 Laravel 6 项目中实现时,此代码不起作用

$data=array(
   'apartment' => DB::table('apartment')->get();,
   'title' => "List Apartement"
);
return view(apartment.index,$data);

问题是什么以及如何解决?谁能帮帮我?

【问题讨论】:

    标签: laravel codeigniter view model controller


    【解决方案1】:

    只需在 , 之前的第 2 行中删除 ; 就可以了

    $data=array(
       'apartment' => DB::table('apartment')->get(),
       'title' => "List Apartement"
    );
    return view('apartment.index', $data);
    

    或者你也可以使用 compact,请参阅下面的文档 https://laravel.com/docs/6.x/views

    【讨论】:

    • 我感到非常沮丧,我没有意识到,谢谢兄弟,这对我有用:D
    • 带引号'apartment.index'
    • @AbuUbaidillah 如果这可行,请让我的回答接受
    【解决方案2】:

    在 Laravel 中,我们可以使用 eloquent 从数据库中获取数据。

    $data=[
       'apartment' => Apartment::get();,
       'title' => "List Apartment"
    ];
    
    return view('apartment.index', ['data' => $data]);
    

    它将为您提供充分的帮助。

    谢谢

    PHpanchal

    【讨论】:

      【解决方案3】:
      return view('apartment.index',compact('data'));
      

      【讨论】:

      • 请避免纯代码回答。添加一段简短的文字,说明这是如何解决问题的。
      【解决方案4】:

      您可以使用compact() 方法,但您有错误(如果这是项目代码)。

      试试:

      $apartment = DB::table('apartment')->get();
      $title = 'List Apartement';
      
      return view('apartment.index', compact('apartment', 'title'));
      

      或者

      $data=[
         'apartment' => DB::table('apartment')->get();,
         'title' => "List Apartement"
      ];
      
      return view('apartment.index', compact('data'));
      

      或者:

      $data=[
         'apartment' => DB::table('apartment')->get();,
         'title' => "List Apartement"
      ];
      
      return view('apartment.index', ['data' => $data]);
      

      更新:

      在模板文件中你可以通过调用$data来使用它,因为在return语句中你传递了将与当前模板共享的变量名。因此,要从您的数组$data 中获取一些数据,您只需要这样做:

      @foreach($data['apartment'] as $apartment)
      {{ $apartment }}
      @endforeach
      

      为了获得你的头衔,也可以使用$data['title']

      【讨论】:

      • 我正在使用第三个选项,但我对显示公寓 foreach 感到困惑,我正在使用 @foreach ($apartment as $apartment) ... @endforeach,这是错的吗?错误信息:未定义变量:公寓
      • 您是否尝试过像这样在刀片文件中打印变量@php print_r($variableName); exit;@endphp
      • 你不应该只使用$apartment,而是$data['apartment'],因为你传递给模板$data数组,并且它包含键apartment
      • fyi,当使用return view('apartment.index',$data);(并且 $data 是像 OP 一样的数组)时,无需在刀片文件中使用 $data[..]$datas 密钥将作为刀片内部的变量
      猜你喜欢
      • 1970-01-01
      • 2020-03-24
      • 1970-01-01
      • 2020-04-17
      • 2016-01-24
      • 2020-05-16
      • 2020-12-21
      • 2012-12-05
      • 1970-01-01
      相关资源
      最近更新 更多