在我之前的问题中,我必须执行原始SQL查询。
我在控制器中声明了一个公共函数:
public function deaths()
{
$getdeaths = DB::statement('SELECT * FROM player_deaths ORDER BY time DESC LIMIT 10');
return View::make('main.latestdeaths')->with('getdeaths', $getdeaths);
}
在检索数据时,我想显示玩家名称,因此在foreach中的视图内部,尝试运行SQL查询。
@foreach($getdeaths as $getdeath)
<tr>
<? $name = DB::select( DB::raw('SELECT name FROM players WHERE id = '$getdeath->player_id'') ) ?>
<td>{{ $getdeath->player_id }}</td>
<td></td>
<td></td>
</tr>
@endforeach
当我尝试回显$ name时,未定义变量。
我可以用其他方式解析吗?
答案 0 :(得分:2)
你去:
$getDeaths = DB::table('player_deaths')->orderBy('time','desc')->take(10)->get();
return View::make('main.latestdeaths')->with('getDeaths', $getDeaths);
这将为您提供按时间排序的所有player_death的对象。
答案 1 :(得分:0)
您正在使用DB :: select,因此您必须执行get()来检索记录,顺便说一下,不要在视图上进行SQL查询,不要尊重MVC arquitecture模式。 / p>
答案 2 :(得分:0)
看看作曲家的观点。基本上是在呈现某些视图名称时调用的过滤器或类方法,并自动分配视图变量。
告诉作曲家运行查询并为想要提供信息的视图设置deaths变量。
然后,您可以循环浏览变量,就好像您已在视图中指定了它一样。