用Eloquent在Laravel中传递数据

时间:2013-09-26 02:30:11

标签: laravel laravel-4 eloquent

我们有一个用旧PHP编写的业务的后端,我们现在想要尝试在Laravel中重做它,但是在跳转时遇到了问题。

我已经阅读了大量的教程,但似乎找不到相关的教程。我们有一个充满记录的数据库,对于第一页我们只想将它们全部打印到表格中。

在常规php中,我们只运行一个查询,将其放入数组并解析数据。我尝试在视图控制器中执行此操作,但收效甚微......

表格格式可能略微偏离,只是试图获取现在打印的数据,也可以路由和一切正常。

如果一切都设置在理想的位置,或者如果这是理想的方式,我不是百分之百的,但这就是我们所拥有的:

提前感谢您的帮助!

// Model:'PaymentInfo' - Database Table: 'payment_info'

Class PaymentInfo extends Eloquent
{

    public $connection = 'main';

    protected $table = 'payment_info';

    protected $primaryKey = 'order_id';

    public function getLastname()
    {
        return $this->lastname;
    }

    public function getFirstname()
    {
        return $this->firstname;
    }

    public function getBuyerEmail()
    {
        return $this->buyer_email;
    }

    public function getCountry()
    {
        return $this->country;
    }


    public function getMcGross()
    {
        return $this->mc_gross;
    }

然后是控制器:

class AdminController extends BaseController {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function getIndex()
    {
        return View::make('admin.index');
    }

}

最后的观点:

@extends('master')

@section('content')

<div class="span 8 well">

    <h4>Hello {{ (Auth::user()->username) }}</h4>

</div>

<div>
    <div style="font-size:medium">
    <h1>
    <center>Recent Orders</center>
    </h1>
</div>
<div id="highstyle1">
<table border="1" cellspacing="0" cellpadding="4">
<tr>
    <th>Order #</th>
    <th>Buyer Name</th>
    <th>Email Address</th>
    <th>Country</th>
    <th>Payment</th>
    <th>Buyer Memo</th>
    <th>Order Date</th>
    <th>Status</th>
    <th>Transaction ID</th>
</tr>
<tr>
    {{ $order_id = PaymentInfo::all() }}

    @foreach ($order_id as $order)
        <td>{{ PaymentInfo::$order->lastname }}</td>
    @endforeach
</tr>
</table>
</div>

</div>

@stop

1 个答案:

答案 0 :(得分:3)

从您的视图中删除它,因为它不会以这种方式工作:

{{ $order_id = PaymentInfo::all() }}

这可能是你的新控制器:

class AdminController extends BaseController {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function getIndex()
    {
        $order_id = PaymentInfo::all();

        return View::make('admin.index')->with('order_id', $order_id);
    }

}

同样在你看来:

@foreach ($order_id as $order)
    <td>{{ $order->lastname }}</td>
@endforeach

你不需要模型中的所有get()方法,只需要摆脱它们,$order->lastname仍然可以正常工作。

只是为了澄清:

不会返回一堆ID,它会返回一个Payment对象的集合,完整的东西,所以你最好称之为:

$orders = PaymentInfo::all();

我保留了你用来使它适合你的名字。