Запись таблицы отображения Laravel с использованием запроса

Это может быть глупый вопрос, но я застрял ..

В основном я хочу запустить простой запрос выбора в laravel и показать результат из одной строки в результате базы данных.

Я новичок в php и laravel, поэтому пытаюсь использовать модель, чтобы повесить MVC.

Вот что я сделал. Маршрут

Route::get('groupprofile/(:any)',array('uses'=>'groups@profile'));

Контроллер - groups.php

class Groups_Controller extends Base_Controller {
    public $restful=true;
    public function get_profile($groupName){
        $groups=new Groups();
        $groupInfo=$groups->getGroupInfo($groupName);
        return View::make('groups.profile.groupprofile')->with('groupInfo',$groupInfo);
    }
}

Модель - groups.php

class Groups{
    public function getGroupInfo($name){
        return DB::query('select * from Groups where name=?',array($name));
    }
}

Просмотр — groupprofile.blade.php

@layout('layouts.default')
@section('content')
<h1>This is a profile page for a group.</h1>
@foreach ($groupInfo -> results as $info)
    <br />Here I want to display all columns e.g. name, philosophy, founder name etc.
    <br />$info->Description
@endforeach
<br />Testing end

@endsection

Может кто-нибудь, пожалуйста, направьте меня, как мне это сделать? Я не могу понять, как отображать данные из переданного набора результатов в представлении с помощью блейда.

Или мой подход неправильный, чтобы сделать это? Мне удобнее писать запросы, поэтому я не использую Eloquent или построитель запросов Fluent.


person Yogesh Sawant    schedule 23.05.2013    source источник


Ответы (1)


Посмотрите на использование Eloquent в Larvel, это ORM. В документах очень хорошо об этом говорится.

Ваша модель должна быть Group.php

<?php class Group extends Eloquent {}

Вот и все! Поскольку мы расширяем Eloquent, теперь мы можем, в нашем представлении, вытащить одну строку, подобную этой.

Group::where('name', '=', $somevar)->first()

Конечно, вы, вероятно, захотите сохранить это в переменной вашего контроллера и передать объект в свое представление.

class Groups_Controller extends Base_Controller {
    public $restful=true;
    public function get_profile($groupName){
        $groupInfo = Group::where('name', '=', $groupName)->first()
        return View::make('groups.profile.groupprofile')->with('groupInfo',$groupInfo);
    }
}

Затем, по вашему мнению, вы можете получить доступ к свойствам (столбцам MySQL) этой строки следующим образом.

$groupInfo->name
person Sajan Parikh    schedule 23.05.2013
comment
Однако Eloquent медленнее беглого. - person itachi; 24.05.2013
comment
@itachi, он тянет один ряд. - person Sajan Parikh; 24.05.2013