我还在学习Laravel以及刀片系统是如何运作的。
我想知道更好的做事方式是什么,有些事情是这样的;我已经完成了从数据库中取出一行的查询,然后我想将该查询放入一个数组中,以便我可以选择我想要的任何列。
然后我想将其传递给我的home.blade.php
,并且可以使用{{ $name }}
作为示例。 Ť
这就是我所拥有的:
要注意:这是我想要的方式,但我确实我做了很长的路(错误)。
HomeController.php
<?php
class HomeController extends BaseController {
public function home() {
$hero_query = DB::table('heros')->where('owner_id', Auth::user()->id)->pluck('hero');
if($hero_query) {
$owner_id = Auth::user()->id;
$user = DB::table('heros')->where('owner_id', $owner_id)->first();
$name = $user->hero;
$level = $user->level;
$exp = $user->exp;
$str = $user->str;
$atk = $user->atk;
$def = $user->def;
$int = $user->int;
$blk = $user->blk;
return View::make('home', array(
'name' => $name,
'level' => $level,
'exp' => $exp,
'str' => $str,
'atk' => $atk,
'def' => $def,
'int' => $int,
'blk' => $blk
));
} else {
return View::make('home');
}
}
}
home.blade.php
@if($hero = DB::table('heros')->where('owner_id', Auth::user()->id)->pluck('hero'))
<form action="{{ URL::route('hero-delete') }}" method="POST">
Your hero:<br>
<b>{{ $hero; }}</b> | <input type="submit" value="Delete"><br>
<b>Stats:</b>
LvL: {{ $level }}
Exp: {{ $exp }}
Str: {{ $str }}
Atk: {{ $atk }}
Def: {{ $def }}
Int: {{ $int }}
Blk: {{ $blk }}
</form>
@else
<form action="{{ URL::route('hero-create') }}" method="POST">
Hero:<br>
You do not have a hero, create one!
<input type="text" name="hero">
<input type="submit" value="Create hero">
@if($errors->has('hero'))
{{ $errors->first('hero')}}
@endif
{{ Form::token()}}
</form>
@endif
现在我确定我会以一种愚蠢的愚蠢方式做这件事,因为我刚开始......但有人可以解释我出错的地方吗?
提前致谢!
答案 0 :(得分:4)
只需将整个$user
传递给视图
$user = DB::table('heros')->where('owner_id', $owner_id)->first();
return View::make('home', array('user' => $user));
然后在你看来
Str: {{ $user->str }}
Int: {{ $user->int }}
等等。
答案 1 :(得分:0)
你犯了很多错误:(
我修改了一些代码,但我没有对其进行测试,因此请将其作为实现所需内容的指南。
class HomeController extends BaseController {
public function home() {
$hero = Hero::where('owner_id', '=', $owner_id)->first();
if($hero)
{
return Response::make('home', array('hero' => $hero->toArray()));
}
else
{
return Response::make('home');
}
}
}
刀片模板
@if(isset($hero))
{{ Form::open(array('route' => 'hero-delete', 'method' => 'DELETE')) }}
Your hero:<br>
<b>{{ $hero->hero }}</b> | <input type="submit" value="Delete"><br>
<b>Stats:</b>
<!-- Here you can implement a foreach for performance -->
LvL: {{ $hero->level }}
Exp: {{ $hero->exp }}
Str: {{ $hero->str }}
Atk: {{ $hero->atk }}
Def: {{ $hero->def }}
Int: {{ $hero->int }}
Blk: {{ $hero->blk }}
{{ Form::close() }}
@else
{{ Form::open(array('route' => 'hero-create')) }}
Hero:<br>
You do not have a hero, create one!
<input type="text" name="hero">
<input type="submit" value="Create hero">
@if($errors->has('hero'))
{{ $errors->first('hero')}}
@endif
{{ Form::close() }}
@endif