在Laravel中针对3个表测试变量

时间:2019-03-06 09:18:05

标签: php laravel

我很难让此代码块正常工作:

Route::get('admin/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login/', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
Route::get('register/', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register/', 'Auth\RegisterController@register');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');

我要实现的是$ request-> sert_nommer必须检查它是否在Alternates表,Share表或Aandeel表中。所有这些代码都可以在本地服务器上正常运行,没有错误,但是当我在生产服务器上对其进行测试时,到达查询的这一部分时会得到404

1 个答案:

答案 0 :(得分:0)

稍微更改一下查询即可,它应该可以正常工作(未经测试):

if($request->sert_nommer >= 1003333) {
    $sertifikaat = Alternate::where('sert_nommer', $request->sert_nommer)->first();
    if($sertifikaat){
        $sertifikaat->is_paid = 4;
        $sertifikaat->save();
    }
}elseif($request->sert_nommer <= 1003604) {
    $sertifikaat = Share::where('sert_nommer', $request->sert_nommer)->first();
    if($sertifikaat){
        $sertifikaat->is_paid = 4;
        $sertifikaat->save();
    }
}elseif($request->sert_nommer <= 50000) {
    $sertifikaat = Aandeel::where('sert_nommer', $request->sert_nommer)->first();
    if($sertifikaat){
        $sertifikaat->is_paid = 4;
        $sertifikaat->save();
    }
}
  

findOrFail和firstOrFail方法将检索查询的第一个结果;但是,如果未找到结果,将抛出Illuminate \ Database \ Eloquent \ ModelNotFoundException。如果未捕获到异常,则会自动将404 HTTP响应发送回用户。

有关更多详细信息,请参见官方doc