Я разрабатывал приложение codeigniter в течение последних 2 лет, и с тех пор, как я начал стилизацию шаблонов mvc из самого codeigniter, теперь я не являюсь активным пользователем командной строки, поэтому сначала у меня была некоторая кривая обучения с codeigniter, но я пересек ее и начал разрабатывать приложения с воспламенителем кода, потому что нам не нужно много настраивать, и все было внутри одного zip-файла, но теперь, к сожалению, codeigniter мертв, и я всего лишь один человек в моей команде, я должен полагаться на другие сторонние инструменты, которым доверяют другие, поэтому я решил переключиться на laravel, теперь при запуске было очень сложно перейти с codeigniter, потому что композитор и все остальное, но как-то я тоже это пересек, но теперь я путаюсь с маршрутизацией и другими вещами, и я перепробовал много учебных пособий, но я все еще не могу понять, как я могу перейти из приложения, где я управляю студентами, где они могут менять электронную почту, менять номер телефона, обновлять материал, в codeigniter это было легко, но я не знаю, как к нему подойти этот материал в маршрутизации Ла Равель, теперь этот вопрос звучит глупо для сообщества, которое уже работает над Laravel, но если вы увидите, с моей точки зрения, это повлияет на мой хлеб с маслом. Вот как я использую, чтобы подойти в codeigniter
class Student extends CI_Controller{
// usual piece of code of constructor
function update_email()
{
// piece of code to update email
}
}
но теперь с системой маршрутизации Laravel и все, я не знаю, как подойти к этому контроллер ресурсов выглядит так
<?php
class StudentController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
}/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}}
Теперь с каждой частью все в порядке, но как мне подойти к вещам, где мне нужно обновить только адрес электронной почты или только номер телефона и прочее?
На самом деле, в вашем вопросе у вас есть RESTful
контроллер, который может сбить вас с толку в это время, потому что вы новичок в Laravel
и использовал CI
так что, вероятно, вы очень сильно привыкли к автоматизации URL
картографирование без маршрута. В этом случае для простоты я предлагаю вам использовать простой контроллер, и это почти то же самое, что вы сделали в CI
но здесь, в Laravel
ты должен объявить route
за каждое действие. Итак, просто создайте два маршрута, как эти:
Rouite::get('something/edit/{id}', array('uses' => 'StudentController@edit', 'as' => 'edit.record'));
Rouite::post('something/update/{id}', array('uses' => 'StudentController@update', 'as' => 'update.record'));
Затем создайте класс / Controller и объявите эти методы:
class StudentController extends baseController {
// URL: http://example.com/something/edit/10 and it'll listen to GET request
public function edit($id) {
// $record = Load the record from database using the $id/10
// retuen View::make('editform')->with('record', $record);
}
// URL: http://example.com/something/update/10 and it'll listen to POST request
public function update($id) {
// Update the record using the $id/10
}
}
В вашей форме вы должны использовать http://example.com/something/update/10
как action
и вы можете использовать route('update.record')
или же url('something/update/10')
генерировать action
в виде. Читать дальше на Документация Laravel.
То, что вы создали (или, скорее, сгенерировали), здесь называется Отдыхающий контроллер. Это какой-то «стандартный» способ управления действиями CRUD (создание / чтение / обновление / удаление). Однако нет необходимости делать это таким образом. Вы можете добавить в свой контроллер любые методы, которые вам нужны, и вообще не использовать Restful Controllers. Это ваш выбор.
Вы можете создать в своей функции новый метод
function updateEmail()
{
// do here whatever you want
}
и в вашем routes.php
файл добавить новый маршрут:
Route::match(array('GET', 'POST'), '/changegemail', 'StudentController@updateEmail');
Теперь вы можете написать свой код для этого метода, и он будет работать.