所以我是Laravel的新手。 我知道如何将数组传递给视图。我试图通过将其他变量传递给视图来改变这个基本概念。
这是我的路线:
Route::get('sites', function()
{
$thosting = DB::table('sites')
->select(DB::raw('sum(hosting_fee) as thosting'))
->where('active', True)
->get();
$tdomain = DB::table('sites')
->select(DB::raw('sum(domain_fee) as tdomain'))
->where('active', True)
->get();
$atotal = $thosting + $tdomain;
$sites = Site::where('active', True)->orderBy('updated_at', 'DESC')->get();
return View::make('sites')
->with('sites', $sites)
->with('thosting', $thosting)
->with('tdomain', $tdomain)
->with('atotal', $atotal);
//var_dump($sites);
});
这里是查看sites.blade.php
@extends('layouts.master')
@section('content')
<div class="container well">
<table class="table-condensed">
<th>Annual Hosting</th><th>Annual Domain Name</th><th>Total Annual Income</th>
<tr>
<td>{{ thosting }}</td>
<td>{{ tdomain }}</td>
<td>{{ atotal }}</td>
</tr>
</table>
<h1>Hosting Accounts - Nearest to expiration </h1>
@foreach($sites as $site)
<a href="{{ URL::to('edit', $site->id) }}"><p>{{ $site->host_renewal_date }} - {{$site->site}}</p></a>
@endforeach
@stop
</div>
$ site-&gt; Id等按预期显示网站列表。但是我传递的3个新变量thosting,tdomain和atotal,当我尝试像{{thosting}那样显示它们时会导致错误。错误是ErrorException,已定义(E_unknown)
Use of undefined constant thosting - assumed 'thosting' (View: C:\Users\myname\Desktop\websites\laravel\first\app\views\sites.blade.php)
我认为我没有正确地访问变量 回声thosting
也没用。文档不涉及返回多个变量或不返回数组变量。任何经验丰富的兽医的帮助表示赞赏。最后,我想弄清楚的是如何从几个数据库查询返回到视图数据。
感谢
答案 0 :(得分:3)
你需要在Blade视图中使用$ in PHP变量,否则它会尝试查找常量。所以只需改为
<td>{{ $thosting }}</td>
<td>{{ $tdomain }}</td>
<td>{{ $atotal }}</td>
答案 1 :(得分:0)
好的,谢谢大家。这就是我最终的工作:
{{$ thosting [0] - &gt; thosting}}
Print_r给了我一个线索,即该对象有一个属性名称,因为我总结(hosting_fee)为thosting&#39;。我试图指出thosting(AS名称)并且它有效。毕竟它是一个数组。很棒的学习经历。
如果有一种方法可以将所有这些学习示例添加到Laravel文档中,那将是很好的,只有几个例子可以解决很多问题。
谢谢大家。