1

CakePHP に部分的に基づいて RedBeanPHP を使用して、カスタム MVC フレームワークを構築しています。

現在、DB CRUD の作成に携わっています。ここに私の考えがあります:

class Model extends RedBean_SimpleModel {

}


class Product extends Model {

var $beans = array(
'name',
'price',
...
);
}

これは、RedBeanPHP にテーブル「Products」と列をオンザフライで生成させる良い方法のようです。

現在、私の現在の疑問 (RedBeanPHP の作業と理解を始めているため) の問題は関連付けです。

「hasOne」、「hasMany」、「belongsTo」などのCakePHP のメソッドがとても気に入っています。

誰かがそれを行う方法に私を導くことができますが、RedBeanPHP を使用しますか?

4

2 に答える 2

1

RedBeanPHP で先行モデルを使用する必要はありません。RedBeanPHP は、FUSE と呼ばれるシステムを使用して、Bean を自動的に接続できます。これにより、多くのコードが節約されます。そして...コードが少ない==バグが少ない

$p = R::dispense('product');
$p->price = -6; //not a valid price
R::store($p);

後で検証を追加したい場合は、次のように記述します。

class Model_Product extends RedBean_SimpleModel {
    public function update() {
        if ($this->price < 0) throw new Exception('Price cant be negative!');
    ...}
}

RedBeanPHP は、製品 Bean $p をドメイン モデルのモデル Model_Product に接続します。新しいメソッドを追加して、Bean を使用して呼び出すこともできます。

$p->play(); //-- will call play() on Model_Product

ヒューズについてもっと読む:

http://www.redbeanphp.com/how_fuse_works

お役に立てれば。

于 2013-03-26T22:57:36.727 に答える
0

小豆との関係ができます。

$child->parent=$parentBean; // parent relationship
$child->ownToy=array($toybean1,$toybean2); // 1 to many relationship
$child->sharedToy=array($toybean1,$toybean2); // many to many relationship

問題は、それをどのように実装するかということです。あなたは次のようなものを持つことができます:

var $relations=array(
    'fieldname'=>array('hasMany','names')
);

次に、保存を処理するときに、正しい関数を呼び出していることを確認してください。

if(array_key_exists('fieldname',$this->relations)){
//magic happens
}

正しい方向に向けられることを願っています。

于 2013-03-26T16:48:24.540 に答える