laravel modelÔÚÄÇÀï
laravelÊÇÒ»ÖÖÊ¢ÐеÄphp webÓ¦ÓóÌÐò¿ª·¢¿ò¼Ü£¬Ëü½ÓÄÉÁËmodel-view-controller£¨mvc£©Éè¼Æģʽ£¬ÕâʹµÃËüÔÚphp¿ª·¢ÁìÓòºÜÊÇÊܽӴý¡£ ÔÚlaravelÖУ¬modelÊÇ´¦ÀíËùÓг¤ÆÚ»¯Êý¾ÝµÄ½¹µã×é¼þÖ®Ò»¡£ËüÌṩÁËÒ»¸ö½Ó¿ÚÀ´»á¼ûÊý¾Ý¿â£¬²¢ÓëÊý¾Ý¿â¾ÙÐн»»¥¡£±¾ÎĽ«ÉîÈë̽ÌÖlaravel model¼°ÆäÔÚ¿ò¼ÜÖеÄλÖá£
Laravel Model¸ÅÊö
ModelÊÇMVCÉè¼ÆģʽÖеŤ¾ßÄ£×Ó£¬Ëüͨ³£´ú±í×ÅÓ¦ÓóÌÐòÖеÄÊý¾Ý¡£ÔÚLaravelÖУ¬ModelÊÇÓëÊý¾Ý¿âÏà¹ØµÄ½¹µã×é¼þ£¬Ëüͨ¹ýEloquent ORM»á¼ûÊý¾Ý¿â£¬´¦ÀíÓ¦ÓóÌÐòÖеÄËùÓг¤ÆÚ»¯Êý¾Ý¡£Eloquent ORMÌṩÁËÒ»¸ö¼òÆÓ¶øÇ¿Ê¢µÄ½Ó¿Ú£¬Ê¹ÎÒÃÇÄܹ»Í¨¹ýModelÀ´»á¼ûÊý¾Ý¿â¡£
Model²»µ«½öÊÇת´ïÊý¾ÝµÄÊôÐÔºÍÒªÁìµÄ¹¤¾ß£¬Ëü»¹°üÀ¨ÁË´¦ÀíÊý¾ÝµÄÓªÒµÂß¼£¬´Ó¶øʹÎÒÃÇ¿ÉÒÔÇáËɵؽ«ÓªÒµÂß¼ÓëÎÒÃǵÄÊý¾Ý¿â²Ù×÷ÊèÉ¢¡£
Laravel ModelλÖÃ
ÔÚLaravelÖУ¬ModelÖ÷ҪλÓÚappĿ¼ÏµÄModels×ÓĿ¼ÖС£ÈôÊÇÔÚ½¨ÉèLaravelÏîĿʱδʹÓÖno-modelÑ¡ÏLaravel½«×Ô¶¯ÔÚÕâ¸öĿ¼ÖÐÌìÉúÒ»¸öUserÄ£×ÓÎļþ¡£ÎÒÃÇ¿ÉÒÔƾ֤×Ô¼ºµÄÐèÒªÔÚ´ËĿ¼ÖÐÌí¼Ó»òÐÞ¸ÄÆäËûÄ£×ÓÎļþ¡£
ÔÚÒ»¸ö±ê×¼µÄLaravel×°ÖÃÖУ¬Í¨³£¿ÉÒÔÔÚapp/ModelsĿ¼ÏÂÕÒµ½ËùÓеÄModelÎļþ¡£Õâ¸öĿ¼¿ÉÒÔƾ֤СÎÒ˽ÈËÆ«ºÃ¾ÙÐиü¸Ä£¬¿ÉÊÇÔÚ¸ü¸ÄĿ¼֮ǰ£¬ÐèÒª¸üÐÂconfig/auth.phpÎļþÖеÄusers.providerÖµ£¬ËüÐèÒªÓëÕâ¸öĿ¼¾ÙÐÐÆ¥Åä¡£
¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÀ´½¨ÉèÒ»¸öеÄÄ£×Ó£º
php artisan make:model ModelName
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁ½¨ÉèÒ»¸ö¾ßÓÐÖ¸ÃüÃû³ÆµÄÐÂÄ£×ÓÎļþ£¬¸ÃÎļþ½«Î»ÓÚapp/ModelsĿ¼Ï¡£
³ýÁËÖ¸¶¨Ä£×ÓµÄÃû³ÆÖ®Í⣬ÎÒÃÇ»¹¿ÉÒÔͨ¹ýʹÓÃһЩ¿ì½ÝÑ¡ÏîÀ´¿ìËÙ½¨Éè´øÓÐÔ¤½ç˵ÊôÐÔºÍÒªÁìµÄÄ£×Ó£º
php artisan make:model ModelName --migration
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁ²»µ«ÌìÉúÒ»¸öеÄÄ£×ÓÎļþ£¬»¹»á×Ô¶¯Îª¸ÃÄ£×ÓÌìÉúÒ»¸öÊý¾Ý¿âǨáãÎļþ£¬ÒÔ±ãËü¿ÉÒÔÓëÊý¾Ý¿â¾ÙÐн»»¥¡£
php artisan make:model ModelName --controller
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁÌìÉúÒ»¸ö´øÓÐÖ¸ÃüÃû³ÆµÄÐÂÄ£×ÓÎļþºÍÒ»¸ö¿ØÖÆÆ÷¡£¿ØÖÆÆ÷½«Óë¸ÃÄ£×ÓÒ»ÆðʹÓã¬ÒÔ±ãÎÒÃÇÄܹ»¸üÇáËɵØÖÎÀíÊý¾Ý¡£
Laravel Model½¨ÉèºÍʹÓÃʾÀý
ÔÚLaravelÖн¨ÉèÒ»¸öеÄModelºÜÊǼòÆÓ¡£¿ÉÒÔͨ¹ýʹÓÃphp artisan make:model ModelNameÏÂÁîÀ´½¨ÉèÒ»¸öеÄÄ£×ÓÎļþ¡£Ä£×ÓÎļþÖаüÀ¨ÁËÐí¶à´¦ÀíÊý¾Ý¿â²Ù×÷µÄÒªÁìºÍÊôÐÔ¡£
ÀýÈ磬ÔÚLaravelÖн¨ÉèÒ»¸öÃûΪ¡°Product¡±µÄModel£¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁîÀ´½¨É裺
php artisan make:model Product
µÇ¼ºó¸´ÖÆ
Õ⽫ÔÚapp/ModelsĿ¼Ï½¨ÉèÒ»¸öÐÂModelÎļþ£¬ÃüÃûΪProduct.php¡£
½ÓÏÂÀ´£¬ÎÒÃÇ¿ÉÒÔ·¿ª½¨ÉèµÄÄ£×ÓÎļþ£¬Ìí¼ÓһЩÊôÐÔºÍÒªÁì¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏ´úÂëÏòÄ£×ÓÖÐÌí¼Ó¡°name¡±ºÍ¡°price¡±ÊôÐÔ£º
<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class Product extends Model { use HasFactory; protected $fillable = [ 'name', 'price', ]; }
µÇ¼ºó¸´ÖÆ
ÔÚ´ËʾÀýÖУ¬ÎÒÃÇÏòProductÄ£×ÓÌí¼ÓÁËÁ½¸öÊôÐÔ£¬¼´¡°name¡±ºÍ¡°price¡±¡£ÕâЩÊôÐÔ½ç˵ÔÚ$fillableÊý×éÖУ¬ÕâÌåÏÖÎÒÃÇ¿ÉÒÔÔÚ½¨Éè»ò¸üмͼʱÌî³äÕâЩ×ֶΡ£
³ýÁËÊôÐÔÖ®Í⣬ÎÒÃÇ»¹¿ÉÒÔÏòÄ£×ÓÖÐÌí¼ÓÆäËûÒªÁì¡£ÔÚ´ËʾÀýÖУ¬ÎÒÃÇʹÓÃHasFactory traitÀ´Ìí¼ÓÁËÒ»¸öfactoryÒªÁ죬¿ÉÒÔÓÃÀ´ÎªÎÒÃǵÄÄ£×Ó½¨Éèеļͼ¡£
ÓÐÁËÕâ¸öеÄModel£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏ´úÂë´ÓÊý¾Ý¿âÖлñÈ¡Ò»Ìõ¼Í¼£º
$product = Product::find(1);
µÇ¼ºó¸´ÖÆ
ÔÚ´ËʾÀýÖУ¬ÎÒÃÇʹÓÃfindÒªÁì²éÕÒidΪ1µÄProduct¡£ÎÒÃÇÒ²¿ÉÒÔʹÓÃÆäËûEloquent ORMÅÌÎÊÒªÁìÀ´²éÕҺ͹ýÂ˼ͼ¡£
×îºó£¬ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏ´úÂëÏòProductÄ£×ÓÖÐÌí¼ÓÒ»Ìõмͼ£º
$product = Product::create([ 'name' => 'Example Product', 'price' => 19.99, ]);
µÇ¼ºó¸´ÖÆ
ÔÚ´ËʾÀýÖУ¬ÎÒÃÇʹÓÃcreateÒªÁìÏòProductÄ£×ÓÖÐÌí¼ÓÁËÒ»Ìõмͼ£¬Õâ¸öÒªÌå»á×Ô¶¯´¦ÀíÎÒÃÇÔÚ$fillableÊôÐÔÖнç˵µÄ×ֶΡ£
×ܽá
Laravel ModelÊÇ¿ò¼ÜÖеÄÒ»¸öÖ÷Òª×é¼þ£¬ËüÔÊÐíÎÒÃÇÇáËɵØÓëÊý¾Ý¿â¾ÙÐн»»¥£¬²¢´¦ÀíÓ¦ÓóÌÐòÖеÄËùÓг¤ÆÚ»¯Êý¾Ý¡£ÔÚLaravelÖУ¬Modelͨ³£Î»ÓÚapp/ModelsĿ¼ÖУ¬²¢Í¨¹ýEloquent ORMÌṩÁËÐí¶àÇ¿Ê¢µÄÅÌÎʺͲÙ×÷ÒªÁ졣ʹÓÃModel£¬ÎÒÃÇ¿ÉÒÔÇáËɵؽ«ÓªÒµÂß¼ÓëÊý¾Ý¿â²Ù×÷ÊèÉ¢£¬ÕâʹµÃÎÒÃǵĴúÂëÔ½·¢Ä£¿é»¯ºÍÒ×ÓÚά»¤¡£
ÒÔÉϾÍÊÇlaravel modelÔÚÄÇÀïµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡