Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > MVC เขียน Method ดึงคิวรี่ควรเขียนที่ M หรือ C กันแน่ เห็นตย.หลายที่ชอบเขียนที่ M



 

MVC เขียน Method ดึงคิวรี่ควรเขียนที่ M หรือ C กันแน่ เห็นตย.หลายที่ชอบเขียนที่ M

 



Topic : 108624



โพสกระทู้ ( 52 )
บทความ ( 0 )



สถานะออฟไลน์




ผมเป็นมือใหม่เพิ่งเคยใช้ Framework นะครับ ตอนนี้เริ่มที่ Yii งงกับตัวอย่างในหลายๆเว็บ ขอถามหน่อยครับ
Model คือข้อมูล DB
Controller คือ Process ประมวลผล ดึง db ส่งไปแสดงที่ View
แต่ทำไมเห็นตัวอย่างการจัดรูป DropDownList ประมาณว่า

Code (PHP)
DropDown (Value=id, Selected=$model->id, Text= FName.' : '.Address)

ตรง DropDown แสดงผลที่ใช้แบบเป็นเรียก Function เพื่อเป็น echo dropdown หลายๆที่ชอบไปเขียนประมวลผลคิวรี่ที่ M ไม่ใช่ที่ C
คือมันไม่ใช่ดึงข้อมูลดิบๆ มาแสดงแบบตรงๆ แต่ข้อมูลมันจะถูกประมวลผล จัดรูปก่อนที่จะมาแสดงที่ DropDown
ตามหลักของ MVC จริงๆมันควรจะไปเขียน Function ที่คอนโทรลเลอร์รึเปล่าครับ
แต่จากที่เห็นข้อดี ที่เขียนที่ M คือง่ายเวลาเรียกคลาสหรือ Method ใช้ $this, Parent::model()->find ได้ไม่ต้องเรียกชื่อเต็ม ประมาณนั้น
และอีกข้อคือ เรียกข้ามไป controller อื่นยุ่งยาก เรียกข้ามไปโมเดลอื่นง่ายกว่าเยอะ

รบกวนใครช่วยไขให้กระจ่างหน่อยครับ ว่าจริงๆตามหลักควรจะเขียนที่ไหน
ขอบคุณครับ



Tag : PHP, Web Hosting, Web Hosting, Web Hosting









ประวัติการแก้ไข
2014-05-24 23:06:54
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-05-24 20:23:37 By : Giguntic View : 1679 Reply : 5
 

 

No. 1



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

เขียนไว้ใน model จะดีกว่าครับ (สามารถนำ method ที่ทำไว้มาใช้ได้ใน controller อื่นๆ)

แต่ก็ไว้ใน controller ได้เหมือนกันครับ แต่ควรจะแยกชุดคำสั่งเป็น private method จะดีกว่าเขียนโค้ดยาวๆ ทั้งหมดไว้ใน action ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-25 00:21:58 By : num
 


 

No. 2



โพสกระทู้ ( 5,146 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เทพแห่งเฟรมเวิร์ค มาตอบเอง ..

จริงๆ ผมอยากให้คุณหนุ่ม ทำบทความพวก Framework นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-25 05:42:31 By : deawx
 

 

No. 3



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

เขียนให้คิวรี่ที่ Model คืนค่าออกมาเป็นอาร์เรย์
สร้าง helper (function) กลางสำหรับจัดการกับอาร์เรยืที่ได้ครับ
DropDown (Value=id, Selected=$model->id, Text= FName.' : '.Address)

การณีที่คอนโทรลอื่นๆ ต้องการรูปแบบที่ต่างออกไป ก็ยังคงใช้ Model เดิมแต่เพิ่ม helper ใหม่เข้าไปแทน



ปล. helper ที่เราสร้างมานั้นจะสามารถใช้กับ Model อื่นๆได้ด้วยครับ แค่ส่งอาร์เรย์ในตำแหน่งที่ตรงกันหรือกำหนดค่าที่ส่งเข้าไปในรูปแบบเดียวกัน เพราะ drop-down list ส่วนใหญ่ก็รับค่าแค่ 3 ค่าเหมือนกันหมดทุกตัว ถ้าเราไปผูกกับ Model ของใครของมันจะทำให้เราต้องสร้างเงิ่อนไข <option></option> และ selected อีกหลายชุดเท่ากับจำนวน dropdown

ปล.2 ต้องขออภัยด้วยเรื่อง helper อาจจะทำให้เกิดข้อสงสัยว่าคืออะไร เพราะผมใช้ CodeIgniter จึงบอกไม่ถูกว่าเฟริมเวิร์กอื่นเขาเรียกว่าอะไรครับ แต่สรุปคือ มันเป็นไฟล์ที่ใช้รวบรวมฟังก์ชั่นครับ


ประวัติการแก้ไข
2014-05-25 13:56:56
2014-05-25 13:59:58
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-25 13:53:06 By : {Cyberman}
 


 

No. 4



โพสกระทู้ ( 52 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : num เมื่อวันที่ 2014-05-25 00:21:58
รายละเอียดของการตอบ ::
ถ้าจะมีการเรียกใช้ Method จาก Controller อื่นด้วย ควรเขียนใน Model ด้วยรึเปล่าครับ
หรือต้องดูจากลักษณะการทำงานของ Method นั้นๆครับ


ตอบความคิดเห็นที่ : 3 เขียนโดย : {Cyberman} เมื่อวันที่ 2014-05-25 13:53:06
รายละเอียดของการตอบ ::
กำลังงงกับคำว่า Helper พอดี นึกว่าเป็นศัพท์อะไรใน Yii ขอบคุณที่ปล.อธิบายเพิ่มเติมไว้นะครับช่วยได้เยอะเลย


ตอบความคิดเห็นที่ : 2 เขียนโดย : deawx เมื่อวันที่ 2014-05-25 05:42:31
รายละเอียดของการตอบ ::
เห็นด้วยครับ โดยเฉพาะเด็กจบใหม่สาย web programmer พวก php นี่มักจะเรียน เขียนมาตามหนังสือ กว่าจะรู้จัก MVC หรือ Framework นี่ก็ต้องทำงานมีปสก.กันมาหลายปี หรือโชคดีได้ทำงานในที่เค้าใช้ Framework กัน

ขอบคุณทุกท่านมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-25 21:44:31 By : Giguntic
 


 

No. 5



โพสกระทู้ ( 112 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

model
Code (PHP)
public static function getOptions(){
        $model = ProductKey::model()->findAll();
        $arr = array();
            
        foreach ($model as $r){
            $arr [$r->id] = $r->product_key;
        }
        return $arr;
        
    }


view
Code (PHP)
<?php echo $form->dropdownList($model, "product_key_id", ProductKey::getOptions()); ?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-26 11:43:28 By : yokvoice
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : MVC เขียน Method ดึงคิวรี่ควรเขียนที่ M หรือ C กันแน่ เห็นตย.หลายที่ชอบเขียนที่ M
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่