2013-05-21 4 views
1

우선 Laravel과 MVC 환경을 처음 접했습니다. 이 프로젝트에서는 데이터베이스를 MySQL로, 카리스마를 번들로 사용하고 있습니다. DB에서 데이터를 검색 할 때 어려움을 겪고 있습니다. 나는 누군가가이 모든 문제들을 통해 나를 인도 할 수 있을지 궁금해한다.Laravel - 번들을 사용하여 db에서 데이터 검색

  1. 번들을 사용하는 경우 모델, 컨트롤러 및 경로는 어디에 모두 넣어야합니까? /application 폴더 또는 번들의 폴더 자체에 있습니까?
  2. 언제 /application 폴더를 사용해야하며 언제 카리스마 폴더를 사용합니까? (분명히 프론트 엔드 UI에만 사용하고 있습니다.)
  3. 내 데이터베이스 테이블 (이름이 user_links)에 카리스마보기에서 데이터 검색을 테스트 할 레코드가 있습니다. 어떻게해야합니까?

나는이 CRUD Tutorial in Laravel을 가이드로 사용하고 있지만, 번들을 사용할 때는 약간 혼란 스럽다.

좋아, 내 방식대로 해봅시다. 여기에서 검색을 할 것입니다. 카리스마가 /models 폴더를 가지고 있지 않기 때문에이 /application/models/user_links.php (난

id: int 
user_id: varchar 
link_title: text 
link_url: text 

모델 : 나는 누군가가 실수를 지적하고 수정 :

이름 user_links 저를 안내 할 수 있기를 바랍니다 야는 기본 하나) 사용

class User_Link extends Eloquent{ 
} 

컨트롤러를bundles/charisma/controllers/user_link.php (사용 카리스마 컨트롤러 폴더)

class Charisma_User_Link_Controller extends Base_Controller{ 

    public $restful = true; 

    public function get_index(){ 
$user_links = User_Link(); 
return View::make('user_links.index') 
->with('link_title', 'Link Title') 
->with('link_url', 'URL'); 
    } 
} 

보기/bundles/charisma/views/pages/index.blade.php :

<div > 
@foreach($user_link->results as $user_links) 
    {{ $user_links::link_title }} 
    {{ $user_links::link_url }} 
@endforeach 
</div> 

경로/bundles/charisma/routes.php : 전부

Route::controller('charisma::user_link'); 

. 물론 약간의 오류가있을 수 있지만 더 필요한 것이 있으면 알려주세요. 미리 감사드립니다. charismaadmin bundle이며이 애플리케이션을 위해 설계되어 있기 때문에

답변

2

당신은 당신의 프런트 엔드 UI에 대한 응용 프로그램 폴더를 사용해야합니다, 사람들은 설치에 대한 백엔드 지원을하고 사용자 정의 cms 같은 다양한 시스템 구성을 유지한다.

Laravel-3에서 application 폴더는 컨트롤러, 모델 및 뷰를 해당 폴더에 유지하고 컨트롤러 라우팅을 위해 application/routes.php을 사용하는 기본 위치입니다.

그러나 다른 번들을 charisma으로 사용하려면 번들 디렉토리의 루트에 번들을 유지하고 번들 이름을 배열에 bundles.php 파일로 추가해야합니다.예를 들어, 내 프로젝트 중 하나에 내 관리자 패널에 대한 번들로 charisma을 사용했습니다 내가 charisma의 파일을 배치 위치를 폴더의 이름이 관리했다

return array(
    'admin' => array('handles' => 'hit_admin'), <-- added for admin bundle 
    // more bundles.......... 
); 

(내가 관리자로 카리스마 이름) 그리고 내 디렉토리 구조는 domain_root/bundles/admin이고 관리자는 charisma (이름이 변경됨)이며 해당 번들 컨트롤러에 번들 routes.php을 사용해야합니다. 예를 들어 domain_root/bundles/admin에 내가 routes.php 파일을 가지고 있고 그 파일에 admin 번들에 대한 모든 경로를 등록했으며 관리 번들은 컨트롤러, 뷰, 모델 및 공용 폴더를 소유하고있었습니다. 그래서, 기본적으로, 나는 그 폴더들을 사용해야 만했습니다. 모든 관리자 컨트롤러는 domain_root/bundles/admin/controllers 폴더에 있었고 모델과보기에도 동일했습니다. 모든 번들에는 자신의 자산을 유지하는 자체 공용 폴더가 있습니다.

그리고 admin/routes.php 경로에

Route::any('(:bundle)', array('as' => 'admin_home', 'uses' => 'admin::[email protected]')); 

같은 것이 또한 관리 번들의 모든 컨트롤러가

class Admin_Home_Controller extends Admin_Base_Controller { 
    // ... 
} 

, 내가 사용, 예를 들어, 자신의 기본 컨트롤러의 확장 할 수 있었다 그리고이 있었다 base.phpadmin/controllers 폴더에있는 파일이며 관리자 기본 컨트롤러였습니다.이 내용은 다음과 같습니다.

class Admin_Base_Controller extends Controller { 

    public function __construct() 
    { 
     parent::__construct(); 

     // Add assets for admin 
     Asset::add('jQuery', 'js/jquery-1.7.2.min.js'); 
    } 

    public function __call($method, $parameters) 
    { 
     return Response::error('404'); 
    } 

} 

자세한 내용은 this tutorial을 살펴보고 documentation을 참조하십시오.

관련 문제