2013-04-06 3 views
0

Я не совсем понимаю, куда мой код идет для этого орма.Куда поместить код модели в ORM? (Eloquent)

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(); 


} 

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

My design pattern pre orm состоит в том, чтобы положить почти все в модель. Таким образом, если нескольким контроллерам нужна одна и та же структура данных, я вызываю функцию один раз и обрабатывает все проверки/etc.

Чин!

ответ

0

Чтобы использовать ОРМ, в первую очередь, вам необходимо подключение настроить. Вы можете посмотреть this answer. В нем рассказывается, как настроить красноречивое соединение с БД.

Как только это будет сделано, вам необходимо создать модель, которая расширяет 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, если они есть.

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

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

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

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

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

Для получения дополнительной информации вы можете ознакомиться с Docs. Это действительно не так сложно!

Cheers! :)