2013-09-26 4 views
2

У нас есть бэкэнд для нашего бизнеса, написанный на хорошем старом PHP, теперь мы хотим попытаться его переделать в Laravel, но у вас проблемы с прыжком.Передача данных в Laravel With Eloquent

Я прочитал тонны учебников, но, похоже, у вас проблемы с поиском того, что относится. У нас есть база данных, полная записей, и для первой страницы мы просто хотим распечатать их все в таблицу.

В обычном php мы просто запускаем запрос, помещаем его в массив и разбираем данные. Я попытался сделать это в контроллере просмотра, но у меня мало успеха ...

Формат таблицы может быть слегка отключен, просто пытаясь получить данные, напечатанные на данный момент, а также маршруты и все работает.

Я не 100% от того, если все настроено в идеальном месте, или, если это идеальный способ сделать это, но вот что мы имеем:

Заранее спасибо за помощь!

// 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 

ответ

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 

И вам не нужны все эти методы получения() в вашей модели, просто избавиться от них и до сих пор $order->lastname будет работать нормально.

Просто для уточнения:

не будет возвращать кучу идентификаторов, он возвращает коллекцию объектов оплаты, полных вещей, так что лучше назвать его:

$orders = PaymentInfo::all(); 

Я просто продолжал имя, которое вы использовали, чтобы заставить его работать на вас.

+0

Я вносил изменения, и вещи определенно имеют больше смысла, но он дает ошибку «никаких полученных данных, код ошибки: ERR_EMPTY_RESPONSE». Я что-то упустил из своей модели? – Nick8675

+0

Взгляните на журналы своего веб-сервера, вы должны увидеть некоторые ошибки там. –

+0

Бинго, все. Благодаря! – Nick8675

Смежные вопросы