Куда поместить код модели в ORM? (Красноречивый)

Я не совсем понимаю, куда идет мой код для этой формы.

class Brand_model extends MY_Model {

public function add_brand($name, $size)
{
//goal:
//        $sql = "insert into brand (name, size_id) values (?,?)";
//        $query = $this->db->query($sql, array($name, $size));

    $brand = new self();
    $brand->name=$name;
    $brand->size=$size;
    $brand->save();


}

Это создает новую строку в базе данных в соответствующей таблице, но без данных внутри нее. Однако я уверен, что эти переменные заполнены. Любые идеи?

Моя предварительная форма шаблона проектирования состоит в том, чтобы поместить почти все в модель. Таким образом, если нескольким контроллерам нужна одна и та же структура данных, я вызываю функцию один раз, и она обрабатывает все проверки и т. д.

Спасибо!


person Steve    schedule 06.04.2013    source источник


Ответы (2)


Пожалуйста, найдите ссылку для интеграции eloquent и codeigniter

http://mannyisles.com/using-eloquent-orm-inside-codeigniter.html

person Arun SS    schedule 05.09.2013

Чтобы использовать ORM, прежде всего, вам нужно настроить соединение. Вы можете просмотреть этот ответ. В нем рассказывается, как настроить красноречивое соединение с БД.

Как только это будет сделано, вам нужно создать модель, которая расширит ORM, и выполнять все ваши вызовы БД, используя эту модель.

Вы можете создать файл, скажем, FooModel.php следующим образом:

<?php

namespace Models\FooModel;

use Illuminate\Database\Eloquent\Model;

class FooModel extends Model
{
    protected $table = 'sample_table';
    protected $fillable = array('comma', 'seperated', 'column', 'names');

    protected $hidden = array('id');
    public $timestamps = true;
}
?>

$fillable сообщает красноречивому, в какие столбцы вы хотите писать. вы можете игнорировать автоматически увеличивающиеся столбцы и столбцы со значениями по умолчанию. $timestamps обрабатывать ваши столбцы created_at и updated_at, если они у вас есть.

Когда вам нужно создать строку, вы можете вызвать красноречивый функция create(). Для этой функции требуется ассоциативный массив с именами столбцов в качестве ключа и значениями в качестве соответствующего значения, которое вы хотите вставить в этот столбец.

$row = array('name' => 'Foo',
     'email' => '[email protected]'
);

Затем вы можете просто вызвать функцию создания с $row в качестве параметра.

$response = FooModel::create($row);

Если вы сделаете var_dump($response);, вы увидите статус create(). true для успеха или сообщения об ошибке.

Дополнительную информацию можно найти в документах. Это действительно не так сложно!

Ваше здоровье! :)

person vnay92    schedule 03.06.2015