Laravel 5:`select()`和`all()`方法不起作用,`where`方法。我究竟做错了什么?

时间:2015-05-29 00:03:26

标签: php laravel-5

我是Laravel框架的新手,一直在观察Laracasts并阅读文档来学习系统。到目前为止一切都那么好,但现在我正在走上访问第二个数据库的道路,而且我遇到了问题。出于某种原因,我可以使用where()方法从数据库中提取数据,但是当我使用select()时它会中断(页面不加载,没有显示错误,日志文件为空)或all()方法,我无法弄清楚原因。

这是我的模特:

class SharedAircraft extends Model {

protected $fillable = [
]; // This is done to block any possible entries for now. Find a better solution before production.

protected $connection = 'pams_shared'; // Point to the shared database

protected $table = 'shared_aircraft'; // This overrides the Laravel default to look for the plural version of the class.

}

如果我使用all()

,这是我的控制器中断,相同的结果
public function create()
{
    $aircraft = SharedAircraft::select('aircraft_mfr','aircraft_model')->get();
    return view('aircraft.create', compact('aircraft'));
}

这是我的控制器:

public function create()
{
    $aircraft = SharedAircraft::where('aircraft_mfr','Cessna')->get();
    return view('aircraft.create', compact('aircraft'));
}

这是我的aircraft.create视图:

<select>
    @foreach($aircraft as $id)
        <option value="{{ $id->shared_aircraft_id }}">{{ $id->aircraft_mfr.' '.$id->aircraft_model }}</option>
    @endforeach
</select>

这是我的database.php中的第二个连接:

    'pams_shared' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'pams_shared'),
        'username'  => env('DB_USERNAME', 'pams_admin'),
        'password'  => env('DB_PASSWORD', '************'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

我确实在Controller中加载了模型:

use App\SharedAircraft;

我在想可能有办法强制显示错误信息,但我也在那里碰壁。

感谢您的帮助。

更新1

pams_shared数据库中还有其他三个表,它们是:shared_enginesshared_ata_codesshared_propellers。当我尝试DB::table('pams_shared.shared_aircraft')->get();时,它会断开并只显示一个白页,但是当我尝试其他任何一个时,它都有效!所以,DB::table('pams_shared.shared_engines')->get();按预期工作!这是否意味着那张桌子有问题?

更新2

我已确认表shared_aircraft导致问题。我将表重命名为shared_broken并创建了一个名为shared_aircraft的新表,插入了一些数据,一切都按预期工作。 现在的问题是,这会导致什么?数据不好?我检查过我的字段类型,它们都匹配数据。还有什么会导致这种情况?

1 个答案:

答案 0 :(得分:0)

如果有人来这里寻找答案,我的问题结果就是表格中的错误数据。我通过替换现有的shared_aircraft并插入几行来解决这个问题。有效。谢谢你的帮助!