我正在和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
由于
答案 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');
});