视图中的未定义变量-Laravel

时间:2019-02-09 17:51:13

标签: php laravel

我正在尝试从Laravel中的数据库获取用户列表,但查看 无法识别来自控制器的变量。表中的名称 DB是korisnik。

Model.php

<?php
namespace App\Models;
use Illuminate\Support\Facades\DB;
class model {  
 public function dohvatiKorisnike() {
   return DB::table('korisnik')->get();
 }
}

KontrolerProba.php

<?php

namespace App\Http\Controllers;
use App\Models\model;

class KontrolerProba {
 public function index(){
   $korisnik = new model();
   $korisniciUpit = $korisnik->dohvatiKorisnike();
   $podaci = array();
   $podaci['korisnik'] = $korisniciUpit;

   return view('welcome', $podaci);
 }
}

welcome.blade.php

@foreach($korisnici as $korisnik)
 <p{{ $korisnik->korisnicko_ime }} </p>
@endforeach

未定义变量:korisnici(查看: C:\ wamp64 \ www \ test \ resources \ views \ welcome.blade.php)

4 个答案:

答案 0 :(得分:1)

通过两种方法在视图中传递控制器数据:

  1. 使用compact
  2. 使用with()方法
 $data['korisnik'] = $korisniciUpit;     
 return view('welcome')->with($data);

然后在视图中访问$korisnik->column_name

希望它会起作用。

答案 1 :(得分:0)

我认为您使用了错误的变量。

尝试:

@foreach($korisnik as $value)
 <p> {{ $value->korisnicko_ime }} </p>
@endforeach

答案 2 :(得分:0)

问题是。您正在传递korisnik,并尝试使用korisnici

获取数据

尝试

<?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;

class KontrolerProba {
 public function index(){
 $korisniciUpit = DB::table('korisnik')->get();
 $data['korisnik'] = $korisniciUpit;
 return view('welcome', $data);
 }
}

在您的Welcome.blade.php

@foreach($korisnik as $value)
   <p{{ $value->korisnicko_ime }} </p>
@endforeach

答案 3 :(得分:0)

让我们遵循控制步骤;

1-)您确定查询返回的数据不为null吗?
2-)laravel以对象形式返回查询,以免引起混淆,我建议您在填充之前创建一个空对象。因此,让我们稍微更改一下代码。

$podaci = (object)null;
$podaci->korisnik = $korisniciUpit;

Laravel还提供了在视图中更改变量名称的方法。一段时间后,您将无法更改所有变量和混乱情况。

return view('welcome')->with(['data' => $podaci]);

要测试传递的变量,请查看您的视图;

var_dump($data);

我希望这会有所帮助:)