2013-04-06 2 views
0

내 코드가이 orm을 위해 어디로가는 지 이해하지 못합니다.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(); 


} 

이렇게하면 데이터베이스에 적절한 테이블에 새 행이 있지만 내부에 데이터가 없습니다. 그러나 나는 그 변수가 채워 졌다고 확신한다. 어떤 아이디어?

내 디자인 패턴 pre orm은 거의 모든 것을 모델에 넣는 것입니다. 그런 식으로 여러 컨트롤러가 동일한 데이터 구조를 필요로하면 함수를 한 번 호출하고 모든 유효성 검사/etc를 처리합니다.

THanks!

답변

0

에 대한 링크를 찾아주세요. 너는 this answer을 들여다 볼 수있다. 그것은 당신에게 웅변적인 DB 연결을 설정하는 방법을 알려줍니다.

일단 완료되면 모델을 만들어 ORM을 확장하고 해당 모델을 사용하여 모든 DB 호출을 수행해야합니다.

당신은 파일을 만들 수 있습니다 -의 말을하자, 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입니다.

자세한 내용은 Docs을 확인하십시오. 정말 어렵지 않습니다!

건배! :)

관련 문제