我正试图从一个名为"city"的MySQL表中获取不同的城市名称。
以下是控制器代码的样子:
public function getCityNames()
{
if(Auth::check())
{
$cities = DB::table('city')->distinct()->get();
var_dump($cities);
}
else
{
return Redirect::route('account-signin');
}
}
这是模型城市的代码:
<?php
use Illuminate'Auth'UserInterface;
use Illuminate'Auth'Reminders'RemindableInterface;
class City extends Eloquent
{
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'city';
/**
* Using a different primary key name
*
*/
protected $primaryKey = 'geoname_id';
public $timestamps = false;
}
问题
我可以使用上面这个控制器中的确切代码从其他模型输出不同的值,但当我为城市运行它时,我会得到一个空白页面。
- 我正在使用Laravel 4,并启用了详细的错误消息
- 当然,"城市"表中有数据
更新:当我写以下内容时,我会得到数据:
public function Test()
{
return City::where('country_name', '=', 'Canada')->get();
}
但是当我写下以下内容时,我得到了黑色页面?数据大小有问题吗?
public function Test()
{
return City::all()->get();
}
不确定这是否有问题,但您是否正在尝试查看var_dump($cities)
的输出?
如果是这样的话,return var_dump($cities);
不应该给你输出而不是空页面吗?
代码如下:
public function getCityNames()
{
if(Auth::check()) // Tip: You can apply auth filters to controllers if you want.
{
$cities = DB::table('city')->distinct()->get();
return var_dump($cities); // Add return here.
}
else
{
return Redirect::route('account-signin');
}
// If the code doesn't go anywhere, it goes here.
return "TEST";
}
当我运行小型查询时,我能够很好地访问城市表(请参阅问题中的更新)。唯一的解释可能是,当我试图获取所有内容时,我超出了浏览器缓冲区的大小。这个表有70000多行。