Ich benutze Laravel, aber es ist nicht wichtig, wenn Sie einen Controller mit Laravel-Befehlszeilen-Tool erstellen, legt es 4 Standardfunktion zum Erstellen und Aktualisieren dort.Ist es eine schlechte Übung, die gleiche Methode für SAVE und UPDATE zu verwenden?
create
und store
für save
edit
und update
für gut update
!
Dies ist, was Laravel für Shop-Controller vorschlagen.
class ShopController extends Controller
{
public function create()
{
// return create view
}
public function store(Request $request)
{
// save a shop
}
public function edit($id)
{
// find a shop , return edit view
}
public function update(Request $request, $id)
{
// find the shop with id , update the shop
}
}
Aber Ich mag die gleichen Methoden verwenden, Ansicht und Speicherung für das Zeigen/meine Zeile aktualisieren und vermeiden viele zusätzliche Code zu schreiben.
class ShopController extends Controller
{
public function create($id = 0)
{
return view('shop-create' , ['edit'=> Shop::find($id)]);
}
public function store(Request $request , $id = 0)
{
$whitelist = [
'title'=>'required',
'phone'=>'present|numeric' ,
'address'=>'present' ,
];
$this->validate($request, $whitelist);
$shop = Shop::findOrNew($id) ;
// find a shop with given id or create a new shop instance
foreach($whitelist as $k=>$v)
$shop->$k = $request[$k];
$shop->save();
}
}
Natürlich gehe ich mit dem, was Ich mag (zweite Option), aber da Laravel schlägt die erste Art und Weise, nur aus Neugier gibt es keinen Grund, warum ich es so nicht tun sollte? Wird dies in irgendeiner Weise als schlechte Praxis angesehen?
zeigen Sie Ihre Ansicht Quellcode. –
Es ist besser, nicht gegen die Konventionen des Frameworks zu kämpfen, es wird Sie und andere wahrscheinlich in Zukunft verwirren. Umfassen Sie die Art und Weise, wie Laravel arbeitet, und Sie werden mit leichter zu befolgenden Dokumentationen belohnt und es wird einfacher sein, die Framework-Funktionen zu nutzen. – ShaunUK