与Laravel 4相关并获得GET

时间:2014-03-07 15:25:23

标签: php laravel laravel-4 eloquent blade

我正在和Laravel合作。试着找出下面的最佳转换。我会使用查询构建器或口才吗?我应该在哪里集成代码(视图,控制器,模型),这是我将如何正常执行:

HTML - 使用/ sweden或/ stockholm获取记录 - (.htaccess urls)

<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

由于

1 个答案:

答案 0 :(得分:1)

Laravel中的事情比纯PHP更容易,你只需创建一个处理该请求的路由,你就不必直接处理超全球$ _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');

});