2014-03-07 2 views
-1

저는 Laravel과 협력하고 있습니다. 아래에서 최선의 전환을 시도하고 있습니다. 쿼리 작성기 또는 웅변을 사용하고 코드 (보기, 컨트롤러, 모델)를 통합해야하는 위치는 다음과 같습니다.isset 및 GET with Laravel 4

HTML - /swholen 또는/stockholm- (.htaccess URL)

<a href="retailers/country/sweden">Sweden</a> 
<a href="retailers/city/stockholm">Stockholm</a> 

PHP - 레코드와 연결 잡고 데이터 다음

if (isset($_GET['country']) || isset($_GET['city'])) 
{ 
$country = $_GET['country']; 
$store = $_GET['city']; 
$stmt = $db->prepare("SELECT * from table WHERE country = ? or city = ?"); 
$stmt->execute(array($country, $city)); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : 

//output stuff 

endwhile 

} else { //do something else } 

내 현재 Laravel 패턴을 보이는 방법 :

모델 :

class DataListings extends Eloquent { 
    public $table ='database'; 
} 

컨트롤러 :

public function data() { 
return View::make('data') 
->with('table', DataListings::all()) 
} 

은 여기 내 보기 어떻게 내가 함께이 되었는데요 추정하고 내가 혼란 점점 오전 곳이다. 무엇이 어디로 가나, if (isset()이 내 컨트롤러, 모델 또는 여기보기에 있습니까? 쿼리 빌더 또는 elequent를 사용합니까? 위의 변환 방법에 대한 예제를 얻을 수 있다면 좋을 것입니다.

@if 

@foreach($table as $data) // this here is my while : 
{{ $data->country }}, etc etc 
@endforeach 

@else 
//do something else 
@endif 

감사

+0

Laravel이 요청 매개 변수에 액세스하기위한 인터페이스를 제공하므로'$ _GET' 수퍼 글로벌을 사용하지 마십시오. 'Input :: get ('country');'및 :: Input :: get ('city');'설정이되어 있는지 확인하려면 Input :: has ('country'); http를 사용하십시오. : //laravel.com/docs/requests –

+0

모든 SELECT 및 쿼리입니다. 위의 예를 참조하십시오. 나는 위의 것을 Laravel로 변환하는 방법을 알아야합니다. 템플릿을 사용하여 위의 예제를 사용할 수 있습니까? – Panoply

+0

아, 내 잘못입니다. 코드가 이미 Laravel에 있다고 생각했습니다. 당신이 그것을 Laravel로 변환한다면, $ _GET, $ _POST, $ _FILES 등의 값에 접근하기 위해'Input'을 사용하는 것이 더 낫습니다. 그래서 나는 여전히 그것을 권하고 싶습니다;) –

답변

1

상황이 순수 PHP보다 Laravel에서 쉽게, 당신은 단지 그 요청을 처리 할 수있는 경로를 생성하면 자동 전역 $ _GET을 직접 처리 할 필요가 없습니다 :

Route::get('retailers/{region}/{name}', function($region, $name) { 

    $query = Table::newQuery(); 

    if ($region == 'country') 
    { 
     $query->where('country', $name); 
    } 
    else 

    if ($region == 'city') 
    { 
     $query->where('city', $name); 
    } 

    return View::make('retailers.show')->with('table' => $query->get()); 

}); 

그리고 URL은 지역 및 이름이없는 경우에 , 당신은 그것을 얻을 수있는 대체 경로를 가질 수 있습니다

Route::get('retailers', function() { 

    return View::make('retailers.index'); 

}); 
+0

고맙습니다. 에 대한! – Panoply