0

我不太明白我的代码在这个 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();


}

这会在数据库中的相应表中生成一个新行,但其中没有数据。但是,我确信这些变量已被填充。有任何想法吗?

我的设计模式预设是将几乎所有东西都放在模型中。这样,如果多个控制器需要相同的数据结构,我调用一个函数一次,它会处理所有的验证/等。

谢谢!

4

2 回答 2

0

请找到 eloquent 和 codeigniter 集成的链接

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

于 2013-09-05T07:06:32.137 回答
0

要使用 ORM,首先,您需要设置连接。你可以看看这个答案。它告诉您如何设置 eloquent 数据库连接。

完成后,您需要创建一个模型,该模型将扩展 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告诉 eloquent 你想写入哪些列。您可以忽略自动递增的列和具有默认值的列。 $timestamps处理您的 created_at 和 updated_at 列,如果有的话。

当你必须创建行时,你可以调用 eloquent create()函数。此函数需要一个关联数组,其中列名作为键,值作为您要插入该列的相应值。

$row = array('name' => 'Foo',
     'email' => 'foo@bar.com'
);

然后,您可以只调用 create 函数,并将$row其作为参数。

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

如果您执行 a var_dump($response);,您可以看到create(). true成功或错误消息。

有关更多信息,您可以查看Docs。真的没那么难!

干杯! :)

于 2015-06-03T09:35:53.493 回答