laravel - Laravel 响应内容必须是字符串或对象实现 __toString() 错误
问题描述
当我为我的站点发布更新表单时,我收到以下错误:“UnexpectedValueException:响应内容必须是实现 __toString() 的字符串或对象,给出了“布尔值”。” 在我的生产现场。
更令人困惑的是,我在我的开发环境中有一个完全相同的代码和完全相同的数据库的副本,当我用相同的数据保存相同的表单时,它运行得很好,没有错误。我composer update
在 dev 和 prod 上都运行过,但是 prod 上仍然存在错误,dev 上没有错误。
更令人困惑的是,我对 prod 网站的最后一次更新是在一个多月前,并且该错误仅在昨天才开始出现。它只发生在用于更新时间表的一种特定表单上,但不会影响其他表单。
这是一个堆栈跟踪:
[2019-04-25 20:57:45] production.ERROR: UnexpectedValueException: The Response content must be a string or object implementing __toString(), "boolean" given. in /home/unlikem5/public_html/myuladmin/vendor/symfony/http-foundation/Response.php:399
Stack trace:
#0 vendor/laravel/framework/src/Illuminate/Http/Response.php(41): Symfony\Component\HttpFoundation\Response->setContent(false)
#1 vendor/symfony/http-foundation/Response.php(206): Illuminate\Http\Response->setContent(false)
#2 vendor/laravel/framework/src/Illuminate/Routing/Router.php(615): Symfony\Component\HttpFoundation\Response->__construct(false)
#3 vendor/laravel/framework/src/Illuminate/Routing/Router.php(572): Illuminate\Routing\Router->prepareResponse(Object(Illuminate\Http\Request), false)
#4 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#5 vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#6 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#7 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#8 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#9 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#11 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(65): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#12 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#13 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#14 vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#15 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#16 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#17 vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#18 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#19 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#20 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#21 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#24 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#25 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#26 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#27 vendor/laravel/framework/src/Illuminate/Routing/Router.php(574): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#28 vendor/laravel/framework/src/Illuminate/Routing/Router.php(533): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#29 vendor/laravel/framework/src/Illuminate/Routing/Router.php(511): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#30 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#31 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#32 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#33 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#34 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#35 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#36 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#39 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#41 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#42 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#45 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#46 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#47 public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#48 {main}
更新:这是表单发布到的控制器功能。一年多来一直保持不变。
public function Positions(Request $request, $positions)
{
$position = Position::find($positions);
$schedule = $position->getSchedule;
$trainingid = $position->trainings_id;
$dt = Carbon::parse($schedule->shoot_date_time);
$scheduleDate = $dt->toDateString();
$scheduleTime = $dt->toTimeString();
$training = null;
$contractors = array();
if ($request->isTraining == 1) {
$training = Training::find($trainingid);
$contractors[$request->Photographer_trainer] = null;
$contractors[$request->Photographer_trainee] = null;
$contractors[$training->photographer_trainer_id] = null;
$contractors[$training->photographer_trainee_id] = null;
$contractors[$request->PhotoEditor_trainer] = null;
$contractors[$request->PhotoEditor_trainee] = null;
$contractors[$training->photo_editor_trainer_id] = null;
$contractors[$training->photo_editor_trainee_id] = null;
$contractors[$request->Videographer_trainer] = null;
$contractors[$request->Videographer_trainee] = null;
$contractors[$training->videographer_trainer_id] = null;
$contractors[$training->videographer_trainee_id] = null;
$contractors[$request->VideoEditor_trainer] = null;
$contractors[$request->VideoEditor_trainee] = null;
$contractors[$training->video_editor_trainer_id] = null;
$contractors[$training->video_editor_trainee_id] = null;
$contractors[$request->Drone_trainer] = null;
$contractors[$request->Drone_trainee] = null;
$contractors[$training->drone_trainer_id] = null;
$contractors[$training->drone_trainee_id] = null;
$contractors[$request->Zillow_trainer] = null;
$contractors[$request->Zillow_trainee] = null;
$contractors[$training->zillow_trainer_id] = null;
$contractors[$training->zillow_trainee_id] = null;
}
$contractors[$request->Photographer] = null;
$contractors[$position->photographer_id] = null;
$contractors[$request->PhotoEditor] = null;
$contractors[$position->photoEditor_id] = null;
$contractors[$request->Videographer] = null;
$contractors[$position->videographer_id] = null;
$contractors[$request->VideoEditor] = null;
$contractors[$position->videoEditor_id] = null;
$contractors[$request->Drone] = null;
$contractors[$position->drone_id] = null;
$contractors[$request->Zillow] = null;
$contractors[$position->zillow_id] = null;
$contractors[$request->Webpage] = null;
$contractors[$position->webpage_id] = null;
$contractors[$request->Flyer] = null;
$contractors[$position->flyer_id] = null;
//Sets Position Check Array to check if New Position is Different from Old Position
$positionsCheckArray = array(
$request->Photographer => $position->photographer_id,
$request->Videographer => $position->videographer_id,
$request->Drone => $position->drone_id
);
//If it exists, Sets Training Check Array to check if New Training is Different from Old Training
$trainingsCheck = false;
if (isset($training)) {
$trainingsCheckArray = array(
$request->Photographer_trainer => $training->photographer_trainer_id,
$request->Photographer_trainee => $training->photographer_trainee_id,
$request->Videographer_trainer => $training->videographer_trainer_id,
$request->Videographer_trainee => $training->videographer_trainee_id,
$request->Drone_trainer => $training->drone_trainer_id,
$request->Drone_trainee => $training->drone_trainee_id
);
$trainingsCheck = $this->checkSetAndNotEqual($trainingsCheckArray);
}
$positionsCheck = $this->checkSetAndNotEqual($positionsCheckArray);
$isGoingCheck = array(
$request->Photographer,
$request->Videographer,
$request->Drone,
$request->Photographer_trainer,
$request->Photographer_trainee,
$request->Videographer_trainer,
$request->Videographer_trainee,
$request->Drone_trainer,
$request->Drone_trainee
);
foreach ($contractors as $contractor => $value) {
$notAvailable = null;
$user = null;
//Check to make sure contractor field is actual contractor
if (isset($contractor) && $contractor != '' && $contractor != -1 && $contractor != 0) {
//Get Contractor
$user = User::find($contractor);
//Check if this contractor was already not available because of this event
$notAvailable = StaticMethods::checkNotAvailable(
$schedule,
$user,
$scheduleDate,
$scheduleTime,
$isGoingCheck
);
if (isset($user->phone)
&& StaticMethods::checkEqualsToUser($isGoingCheck, $user->id)
&& isset($notAvailable->noticeSent)
&& !$notAvailable->noticeSent) {
$confirmationSent = (new CheckAvailabilityController)->confirmWithContractor(
$schedule,
$user,
$notAvailable
);
if (!$confirmationSent) {
return $return['isSet'] = false;
}
}
}
}
if ($request->isTraining == 1) {
if (isset($position->trainings_id)) {
Training::find($position->trainings_id)->update([
'photographer_trainer_id' => $request->Photographer_trainer,
'photographer_trainee_id' => $request->Photographer_trainee,
'photo_editor_trainer_id' => $request->PhotoEditor_trainer,
'photo_editor_trainee_id' => $request->PhotoEditor_trainee,
'videographer_trainer_id' => $request->Videographer_trainer,
'videographer_trainee_id' => $request->Videographer_trainee,
'video_editor_trainer_id' => $request->VideoEditor_trainer,
'video_editor_trainee_id' => $request->VideoEditor_trainee,
'drone_trainer_id' => $request->Drone_trainer,
'drone_trainee_id' => $request->Drone_trainee,
'zillow_trainer_id' => $request->Zillow_trainer,
'zillow_trainee_id' => $request->Zillow_trainee,
'shootDate' => $position->shootDate
]);
} else {
$trainingCreate = Training::create([
'photographer_trainer_id' => $request->Photographer_trainer,
'photographer_trainee_id' => $request->Photographer_trainee,
'photo_editor_trainer_id' => $request->PhotoEditor_trainer,
'photo_editor_trainee_id' => $request->PhotoEditor_trainee,
'videographer_trainer_id' => $request->Videographer_trainer,
'videographer_trainee_id' => $request->Videographer_trainee,
'video_editor_trainer_id' => $request->VideoEditor_trainer,
'video_editor_trainee_id' => $request->VideoEditor_trainee,
'drone_trainer_id' => $request->Drone_trainer,
'drone_trainee_id' => $request->Drone_trainee,
'zillow_trainer_id' => $request->Zillow_trainer,
'zillow_trainee_id' => $request->Zillow_trainee,
'shootDate' => $position->shootDate
]);
$trainingid = $trainingCreate->id;
}
}
$task = $position->update([
'photographer_id' => $request->Photographer,
'photoEditor_id' => $request->PhotoEditor,
'videographer_id' => $request->Videographer,
'videoEditor_id' => $request->VideoEditor,
'drone_id' => $request->Drone,
'webpage_id' => $request->Webpage,
'flyer_id' => $request->Flyer,
'zillow_id' => $request->Zillow,
'trainings_id' => $trainingid
]);
$return['isSet'] = $task;
return $return;
}
解决方案
推荐阅读
- python - Python 3.6.3 Jupyter Notebook: ModuleNotFoundError: No module named 'geopandas' --> Pip Install & Conda both didn't work
- javascript - 构建 bash 命令时如何防止注入攻击?
- python - 如何将项目从最大值到最小值(python)
- javascript - NodeJs 将 URL 中的数组元素传递给 Mustache 模板中的路由
- prolog - 了解 Prolog 中的约束
- bootloader - 引导加载程序可以使用自定义 UEFI 内存类型吗?
- latency - 雪花帐户使用与 SQL 表的数据延迟
- python - 用条件python填充矩阵
- angular - 默认情况下使用 FormControl 选择所有/多个 mat-select 对象
- phpmyadmin - php myadmin 是一个空白的白屏