所以我得到这个错误未定义变量:即使我的变量是在控制器中定义的,游戏:
我的控制器:
public function openingPage($id) {
$this->getCaseData($id);
$this->getGames();
return view('caseopener', ['cases' => $this->data])->with('games',$games);;
}
private function getCaseData($id) {
$items = DB::table('cases')->where('id', $id)->get();
$data = @$items[0] ? $items[0] : array();
if(isset($data->items)) {
$data->items = json_decode($data->items, true);
}
$this->data = $data;
}
private function getGames() {
$games = array();
foreach ($this->data->items as $item) {
$game = new Game($item);
$games[] = array(
'id' => $game->id,
'name' => $game->name,
'image' => $game->image,
);
}
return $games;
}
问题似乎出在getGames()函数
我的刀片:
@for ($i = 0; $i < 10; $i++)
<div class="item" style="background-image:url({{ $games->image }})">
</div>
@endfor
如果需要,这里是我的模型'Game',该模型用于该getGames()函数
class Game extends Model
{
private $id;
public $data;
public function __construct($id) {
parent::__construct();
$this->id = $id;
$this->data = $this->getData();
}
private function getData() {
$game = DB::table('products')->where('id', $this->id)->first();
if(empty($game)) return array();
return $game;
}
}
答案 0 :(得分:2)
您忘记在$games
中分配openingPage()
,请尝试以下操作:
public function openingPage($id) {
$this->getCaseData($id);
$games = $this->getGames();
return view('caseopener', ['cases' => $this->data])->with('games',$games);;
}
答案 1 :(得分:1)
如@dparoli所述,您忘记将游戏分配给$games
变量。
此外,输出值时有一个错误:$games->image
应该是$games[$i]['image']
。 (访问特定游戏,并获取image
值作为数组值)
如果将来有可能少于或少于10场比赛,我将for
循环替换为foreach
:
@foreach($games in $game)
<div class="item" style="background-image:url({{ $game['image'] }})">
</div>
@endforeach