返回多个变量进行查看

时间:2014-09-10 20:32:07

标签: laravel laravel-4 routing views

所以我是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

也没用。文档不涉及返回多个变量或不返回数组变量。任何经验丰富的兽医的帮助表示赞赏。最后,我想弄清楚的是如何从几个数据库查询返回到视图数据。

感谢

2 个答案:

答案 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文档中,那将是很好的,只有几个例子可以解决很多问题。

谢谢大家。