2014-10-05 4 views
0

지난 2 년 동안 codeigniter 앱을 개발 중이었고 codeigniter 자체에서 스타일링을 시작 했으므로 이제는 커맨드 라인 사용자가 아니기 때문에 처음에는 codeigniter로 학습 곡선을 잡았지만 나는 그것을 교차 시켰고 코드 점화기로 앱을 개발하기 시작했다. 왜냐하면 우리는 많은 것을 설정할 필요가없고 모든 것이 하나의 zip 파일 안에 있었기 때문에 지금은 불행하게도 codeigniter가 죽었고 나는 나의 팀에서 단 하나의 사람이다. 나는 다른 것에 의지해야한다. 다른 사람들이 신뢰할 수있는 제 3 자 도구 그래서 laravel로 전환하기로 결정했습니다. 지금 시작하는 것은 작곡가와 다른 모든 것들 때문에 codeigniter에서 마이그레이션하는 것이 힘들었지 만, 어쨌든 나는 그것을 넘어 섰지 만 지금은 라우팅과 혼동합니다 그리고 다른 것들과 나는 많은 튜토리얼을 시도했지만, 나는 아직도 그들이 어떻게 이메일을 변경할 수있는 학생들을 관리하고있는 응용 프로그램에서 마이그레이션 할 수 있는지 볼 수 없다. c hange 전화 번호가 업데이트 된 물건, codeigniter에서 쉽게했지만 laravel의 라우팅에서이 물건에 접근하는 방법을 모르겠다. 이제이 질문은 이미 laravel에서 작업하고있는 커뮤니티에 대해 바보처럼 들린다.하지만 내 관점에서 보면 내 빵과 버터에 영향을 미칠 것입니다. 내가하지만 지금 laravel 라우팅 시스템과 CodeIgniter의컨트롤러 방법은 Laravel

class Student extends CI_Controller{ 
    // usual piece of code of constructor 
    function update_email() 
    { 
      // piece of code to update email 
    } 
} 

에 접근에 사용하는 방법입니다 그리고 난 어떻게 접근하는 아무 생각도 없어 모든 자원 컨트롤러는 모든 부분이 지금이

<?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) 
    { 
     // 
    } 


} 

처럼 보이는이 좋아,하지만 어떻게하면 이메일 주소 나 전화 번호 만 업데이트 할 수 있을까?

답변

0

사실, 귀하의 질문에 당신은 당신이 Laravel에 새로운 및 CI을 사용하기 때문에이 시간에 당신을 위해 혼동 될 수있는 RESTful 컨트롤러를, 그래서 아마 당신은 매우 많이 경로없이 URL 매핑을 자동화에 사용됩니다. 이 경우 쉽게, 나는 당신이 평범한 컨트롤러를 사용하는 것이 좋습니다 그리고 그것은 당신이 CI에서 한 것과 거의 똑같습니다. 그러나 여기서 Laravel에 모든 동작에 대해 route을 선언해야합니다. 이러한 방법을

Rouite::get('something/edit/{id}', array('uses' => '[email protected]', 'as' => 'edit.record')); 

Rouite::post('something/update/{id}', array('uses' => '[email protected]', 'as' => 'update.record')); 

그런 다음 클래스/컨트롤러를 만들고 선언 : 그래서, 단지이 같은 두 개의 경로를 작성 양식에

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 
    } 
} 

을, 당신은 actionhttp://example.com/something/update/10를 사용할 필요가 당신은 route('update.record')을 사용할 수 있습니다 또는 url('something/update/10')을 입력하여 action을 양식에 생성하십시오. Laravel Documentation에 대한 자세한 내용을 읽어보십시오.

0

여기서 작성한 (또는 생성하지 않은) 내용은 Restful controller입니다. CRUD 작업 (생성/읽기/업데이트/삭제)을 관리하는 것은 '표준 방식'입니다. 그러나 이렇게 할 필요는 없습니다. 컨트롤러에 원하는 모든 방법을 추가하고 Restful Controllers를 전혀 사용하지 않을 수 있습니다. 그것은 당신의 선택입니다.

Route::match(array('GET', 'POST'), '/changegemail', '[email protected]'); 

지금이 방법에 대한 귀하의 코드를 작성할 수 있으며, 그것은 작동합니다

당신은 새로운 경로 추가 함수 새로운 방법

function updateEmail() 
{ 
    // do here whatever you want 
} 

에 당신의 routes.php 파일을 만들 수 있습니다.