Jump to content
php.lv forumi

Būvēt savu vai izmantot kādu CMF?


Zefirs

Recommended Posts

Ģenerators ir figņa, tādu var izmantot tikai, kad nāk klāt pavisam jauni modeļi. Cik relācijas esmu licis, tik visas ir bijušas klāt esošiem modeļiem, kur jāraksta viss ar roku.

 

Kaut kāds ģenerators neattaisno to, ka ir sūdīga dokumentācija.

Link to comment
Share on other sites

  • Replies 57
  • Created
  • Last Reply

Top Posters In This Topic

Ģenerators ir figņa, tādu var izmantot tikai, kad nāk klāt pavisam jauni modeļi. 

 

Ne gluži, ģenerators tīri smuki updeito esošos modeļus ja mainījusies shēma, tikai protams modeļi ir jāsadala divās klasēs kur base klase ir ģenerētā un derived klase ir tā kur liec savu custom kodu. 

Edited by Blitz
Link to comment
Share on other sites

Jā, modeļa lauku un attiecīgo db tabulas lauku. Jautājums vairāk par to, kuru definē pirmo un kuru ģenerē.

Tā kā dēļ šiem specifiskiem laukiem, modelis ir augstāku abstrakcijas pakāpi, tad tā vai tā sanāk, ka jādefinē ir modelis no kura ģenerē db shēmu, nevis otrādi.

Teiksim, man Scalā ar Slick ir šāds princips - definēju modeļa lauku, kuriem automātiski tiks uzģenerēta shēma.

Standarta lauki:

def id = column[Long]("id")
def name = column[String]("name")

Bet varu laukam izvēlēties arī tipu pilnīgi brīvi:

def json = column[JsObject]("json")
def customClass = column[MyClass]("myclass")
def standartContainer = column[Map[String, String]]("map")
utt.

Tālāk, man vajadzīgs tikai definēt kāds būs maperis starp modeļa lauku un db kolonnu, kas standarta datu struktūrām ir automātiski.

Mans sākotnējais komentārs bija vairāk par to, ka beigu beigās tik un tā izdevīgāk ir definēt modeli un ģenerēt db shēmu, nevis otrādi.

Link to comment
Share on other sites

Ja ir īstie rīki tad droši vien ka ērtāk ir veidot modeļus vispirms, Yii gadījumā jaiztiek ar database first, bet toties nav jāčakarējas ar mapošanu un relācijām.

Man gan škiet, ka DB vieglāk izveidot izmantojot SQL tūļus. Saliek arī relācijas.

Tāpat arī labojumus. Tiek izveidots SQL skripts, kuru iekopē migrācijas failā. Pec tam pārģenerēju modeļus, uz kuriem attiecas izmaiņas.

Link to comment
Share on other sites

Joprojām heitojot Yii....

 

$user = Yii::app()->db->createCommand()
    ->select('id, username, profile')
    ->from('tbl_user u')
    ->join('tbl_profile p', 'u.id=p.user_id')
    ->where('id=:id', array(':id'=>$id))
    ->queryRow();
vs
 
$user = DB::table('tbl_user AS u')
->select(['id', 'username', 'profile'])
->join('tbl_profile AS p', 'p.user_id', 'u.id')
->where('id', $id)
->first();
Link to comment
Share on other sites

Paskatieties kā pierakstās where nosacījums:

http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail

 

...un kāda ir Laravel dokumentācija:

http://laravel.com/docs/5.1/queries#where-clauses

 

 

Where in Yii:

->where(['IN', 'id', [1,2,3]);

Laravel:
->whereIn('id', [1,2,3]);

 

(id IN (1, 2, 3)) AND (status = 2) Yii:

->where(['id' => [1, 2, 3], 'status' => 2])

 

Laravel:

->whereIn('id', [1,2,3])->where('status', 2)

 

 

Yii:
$model = User::find()->where('userid > :userid', [':userid' => $userid])->one();
Laravel:
$model = User::where('userid', '>', $userId)->first();
 
 
Yii viss ir kaut kāds samudrīts, Laravel - skaists un elegants.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...