briedis Posted June 29, 2015 Report Share Posted June 29, 2015 Ģ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. Quote Link to comment Share on other sites More sharing options...
Blitz Posted June 29, 2015 Report Share Posted June 29, 2015 (edited) Ģ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 June 29, 2015 by Blitz Quote Link to comment Share on other sites More sharing options...
rpr Posted June 29, 2015 Report Share Posted June 29, 2015 Kaut kāds ģenerators neattaisno to, ka ir sūdīga dokumentācija. Acīmredzot, Tu vēl ar Magento neesi strādājis ;) Quote Link to comment Share on other sites More sharing options...
yancis Posted June 29, 2015 Report Share Posted June 29, 2015 Acīmredzot, Tu vēl ar Magento neesi strādājis ;) Nu, pastāsti taču sīkāk. Quote Link to comment Share on other sites More sharing options...
codez Posted June 29, 2015 Report Share Posted June 29, 2015 Kā jūs darāt - veidojat shēmu db un tad ģenerējat modeļus? Kā tādā veidā var, piemēram, specifiskus laukus kā json, array, class, utml. norādīt? Quote Link to comment Share on other sites More sharing options...
Blitz Posted June 29, 2015 Report Share Posted June 29, 2015 specifiskus laukus kā json, array, class Domā db laukus vai modeļa propertijus? Ja modeļa propertijus tad šādus definē derived modelī ar rokām, base modelis ir pliks mapperis (entity?) pret db. Quote Link to comment Share on other sites More sharing options...
codez Posted June 29, 2015 Report Share Posted June 29, 2015 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. Quote Link to comment Share on other sites More sharing options...
Blitz Posted June 29, 2015 Report Share Posted June 29, 2015 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. Quote Link to comment Share on other sites More sharing options...
l27 Posted June 29, 2015 Report Share Posted June 29, 2015 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. Quote Link to comment Share on other sites More sharing options...
briedis Posted July 1, 2015 Report Share Posted July 1, 2015 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(); Quote Link to comment Share on other sites More sharing options...
l27 Posted July 1, 2015 Report Share Posted July 1, 2015 Pareizāk iekš Yii būtu: $user = user::model()->findByPk($id); Quote Link to comment Share on other sites More sharing options...
Kavacky Posted July 1, 2015 Report Share Posted July 1, 2015 Briedis noteikti Yii piemērā speciāli neizmantoja jauno array sintaksi, lai izskatās briesmīgāk. Quote Link to comment Share on other sites More sharing options...
php newbie Posted July 1, 2015 Report Share Posted July 1, 2015 Laravel vienalga smukāk $user = User::find($id); Quote Link to comment Share on other sites More sharing options...
codez Posted July 1, 2015 Report Share Posted July 1, 2015 Laravel vienalga smukāk $user = User::find($id); Kur joins? Kur selektoti tikai konkrēti lauki? Quote Link to comment Share on other sites More sharing options...
briedis Posted July 1, 2015 Report Share Posted July 1, 2015 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.