laravelÔõÑùÇóºÍ£¿ÈýÖÖÒªÁì
laravel ÊÇÒ»ÖÖÊ¢ÐÐµÄ php ¿ª·¢¿ò¼Ü£¬ËüÔÚ¿ª·¢ web Ó¦ÓóÌÐòʱÌṩÁËÐí¶à±ã½ÝºÍÎÞаµÄ¹¦Ð§¡£ÔÚÕâƪÎÄÕÂÖУ¬ÎÒÃǽ«Ì½ÌÖÔÚ laravel ÖÐÇóºÍµÄ¼¸ÖÖÒªÁì¡£
ÒªÁìÒ»£ºÊ¹Óà Query Builder
Laravel µÄ Query Builder ÊÇÒ»¸öÇ¿Ê¢µÄÊý¾Ý¿âÅÌÎʹ¤¾ß£¬ËüÌṩÁËÐí¶àÀû±ãµÄÒªÁ죬°üÀ¨¾ÛºÏº¯Êý¡£ÎÒÃÇ¿ÉÒÔʹÓà Laravel µÄ Query Builder ¿ìËٵĶÔÊý¾Ý¿âÊý¾Ý¾ÙÐÐÇóºÍ²Ù×÷¡£ÒÔÏÂÊÇÒ»¸ö¼òÆÓµÄʾÀý£º
$total = DB::table('orders')->sum('price');
µÇ¼ºó¸´ÖÆ
ÉÏÃæµÄ´úÂëÖУ¬ÎÒÃÇͨ¹ý DB::table() ÒªÁìÖ¸¶¨ÁËÒªÅÌÎʵÄÊý¾Ý±í£¬È»ºóʹÓà sum() ÒªÁì¶Ô¼ÛÇ®¾ÙÐÐÇóºÍ¡£×îºó£¬½«ÇóºÍЧ¹û¸³Öµ¸ø±äÁ¿ $total¡£
ÒªÁì¶þ£ºÊ¹Óà Model
³ýÁËʹÓà Query Builder£¬ÎÒÃÇ»¹¿ÉÒÔͨ¹ý Model ÀàÀ´¾ÙÐÐÊý¾ÝÅÌÎʺͲÙ×÷¡£ÔÚ Laravel ÖУ¬Ã¿ÕÅÊý¾Ý±íͨ³£¶¼»á¶ÔÓ¦Ò»¸ö Model À࣬²¢ÇÒ¸ÃÀàÖÐÒѾĬÈÏ°üÀ¨ÁËһЩ³£ÓõÄÒªÁ죬Èç find()¡¢all()¡¢where() µÈ¡£
ÒÔÏÂÊÇʹÓà Model À´ÇóºÍµÄʾÀý£º
ÔÚ¶ÔÓ¦µÄ Model ÀàÖУ¬ÎÒÃÇÌí¼ÓÒ»¸ö getTotalPrice() ÒªÁ죬ÓÃÀ´ÅÌÎÊ orders ±íÖеļÛÇ®×ܺͣº
public function getTotalPrice() { return $this->sum('price'); }
µÇ¼ºó¸´ÖÆ
È»ºó£¬ÔÚÎÒÃǵĿØÖÆÆ÷ÖУ¬¾Í¿ÉÒÔͨ¹ýÒÔÏ´úÂëŲÓøÃÒªÁ죺
$total = Order::getTotalPrice();
µÇ¼ºó¸´ÖÆ
ÉÏÃæµÄ´úÂëÖУ¬Order ÊÇÎÒÃÇµÄ Model ÀàÃû£¬Í¨¹ý getTotalPrice() ÒªÁìÇó³öÁË orders ±íÖеļÛÇ®×ܺͣ¬²¢¸³Öµ¸ø±äÁ¿ $total¡£
ÒªÁìÈý£ºÊ¹Óà raw SQL
ËäÈ» Query Builder ºÍ Model ¶¼ÌṩÁ˺ÜÀû±ãÎÞаµÄÊý¾Ý²Ù×÷ÒªÁ죬µ«ÔÚijЩÌØÊâÇéÐÎÏ£¬ÎÒÃÇ¿ÉÄÜ»áÐèҪʹÓÃÔʼ SQL Óï¾äÀ´Íê³ÉÊý¾Ý²Ù×÷¡£
ÒÔÏÂÊÇʹÓà raw SQL À´ÇóºÍµÄʾÀý£º
$total = DB::select("SELECT SUM(price) FROM orders")[0]->total;
µÇ¼ºó¸´ÖÆ
ÉÏÃæµÄ´úÂëÖУ¬ÎÒÃÇʹÓÃÁËÔÉúµÄ SQL Óï¾ä£¬¶Ô orders ±íÖеļÛÇ®¾ÙÐÐÁËÇóºÍ¡£È»ºóʹÓà Laravel µÄ DB ÀàÀ´Ö´Ðиà SQL Óï¾ä£¬²¢½«Ð§¹û´æ´¢ÔÚ±äÁ¿ $total ÖС£
×ܽá
ÔÚ Laravel ÖÐÇóºÍÓжàÖÖÒªÁ죬ÿÖÖÒªÁ춼Óи÷×ÔµÄÓÅÈõµã¡£Ê¹Óà Query Builder ºÍ Model µÈÒªÁì¿ÉÒÔ¼«´óµØ¼ò»¯´úÂ룬ͬʱҲ¸üÀû±ã¿É¿Ø¡£¶øʹÓà raw SQL Ôò¿ÉÒÔÉÁ¿ª·¢Õß»ñµÃ¸ü¸ßµÄ×ÔÓɶȺÍÎÞаÐÔ¡£ ÔÚÏÖʵ¿ª·¢ÖУ¬ÎÒÃÇÓ¦¸Ãƾ֤ÏêϸÇéÐÎÑ¡ÔñºÏÊʵÄÒªÁìÀ´Íê³ÉÏìÓ¦µÄÇóºÍ²Ù×÷¡£
ÒÔÉϾÍÊÇlaravelÔõÑùÇóºÍ£¿ÈýÖÖÒªÁìµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡