我不太明白我的代码在哪里用于这个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();
}
这会在相应的表中的数据库中生成一个新行,但其中没有数据。但是我确信这些变量已经填满了。有任何想法吗?
我的设计模式是将几乎所有东西都放在模型中。这样,如果多个控制器需要相同的数据结构,我会调用一次函数并处理所有验证/等。
谢谢!
答案 0 :(得分:0)
请找到eloquent和codeigniter集成的链接
http://mannyisles.com/using-eloquent-orm-inside-codeigniter.html
答案 1 :(得分:0)
要使用ORM,首先需要建立连接。您可以查看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
告诉eloquent您要写入哪些列。您可以忽略自动递增列和具有默认值的列。
$timestamps
处理您的created_at和updated_at列(如果有的话)。
当您必须创建行时,您可以调用雄辩的create()函数。此函数需要一个关联数组,其列名为键,值为您要插入该列的相应值。
$row = array('name' => 'Foo',
'email' => 'foo@bar.com'
);
然后您可以调用create函数,并将$row
作为参数。
$response = FooModel::create($row);
如果您执行var_dump($response);
,则可以看到create()
的状态。 true
表示成功或错误消息。
有关详细信息,请查看Docs。真的不是那么难!
干杯! :)