Doctrine nestedSet many root ne dela
 
basist 10. sep 2010 11:22:38 Pridružen od:
12. jul 2010
8 objav
5 0 0
#1

Živjo,



imam Doctrine 1.2.3 in bi rad uporabil nestedSet. Izdelal sem kontroler in model.

Kolikor vem bi moral nestedSet sam skrbeti za rootid, lft, rgt in level, vendar mi vseskozi javlja napako ko želim zapisati v tabelo prvi vnos s kontrolerjem. Javi da rootid ni določen - čeprav bi ga moral nestedSet sam določiti.



Ali kdo ve v čem je problem? Mi lahko priporočite kakšen dober Doctrine forum.



Koda:



class Cattest extends Controller

{

/**

* The constructor

* @access public

* @return void

*/

public function _
construct()

{

parent::Controller();

// $this->lang->load('categories');

}



public function index()

{

$category = new Category();

$category->category_id = 1;

$category->title = 'Root Category 1';

$category->alias = 'cat1';

$category->lng = 'sl';

$category->active = '1';

$category->save();


    $treeObject = Doctrine_Core::getTable('Category')->getTree();
$treeObject->createRoot($category);

}

// --------------------------------------------------------------------



}

// end Category Controler



class CategoryTest extends DoctrineRecord

{

/**

* Set Doctrine 1.2.3 definition

*/

public function setTableDefinition()

{

$this->setTableName('category
test');


    $this->hasColumn('category_id', 'integer', 4);
$this->hasColumn('lng', 'string', 5);
$this->hasColumn('title', 'string', 255);
$this->hasColumn('alias', 'string', 255);
$this->hasColumn('active', 'binary');

}


public function setUp()
{
parent::setUp();
$nestedset0 = new Doctrine_Template_NestedSet(array(
'hasManyRoots' => true));
$this->actAs($nestedset0);
}

}

// end Category model


všeč(0) ni všeč(0) spam(0)
 
basist 14. sep 2010 13:23:48 Pridružen od:
12. jul 2010
8 objav
5 0 0
#2

Ali mogoče kdo ve rešitev za naveden problem?


všeč(0) ni všeč(0) spam(0)
 
basist 17. sep 2010 21:44:01 Pridružen od:
12. jul 2010
8 objav
5 0 0
#3

Evo rešitev, če jo bo kdaj kdo rabil.



Če narediš, da Doctrine kreira tabelo iz modela, potem za nestedset kreira dodatna polja root_is, lft, rgt in level in določi, da ne smejo biti NULL. In to isto ga potem pri vnosu (save()) zmoti.



Torej se samo polja root_is, lft, rgt in level v tabeli ročno popravi, da so lahko tudi NULL in vse dela ok.


všeč(0) ni všeč(0) spam(0)
 
FrEaKmAn 19. sep 2010 22:52:28 Pridružen od:
2. dec 2007
303 objav
175 59 0
#4

Ali ima kategorija lahko več očetov? Če ne potem


hasManyRoots' => false
všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se