首页 > 解决方案 > 转换 nvarchar 值时 Laravel 转换失败

问题描述

我有一个到 SQL Server 数据库的连接,并且我有一个事件的模型路由绑定设置。像这样:

public function show(Event $event)
{

}

当 event 是一个有效的 id 时,我会得到该事件并加载它。当 ID 无效时,我会显示 404 页面。当我输入像字符串'woifwornfroein'这样疯狂的东西时,我收到一个错误:

SQLSTATE[22018]:[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]将 nvarchar 值“tnkrnbktrnj”转换为数据类型 int 时转换失败。(SQL: select top 1 * from [events] where [id] = tnkrnbktrnj and [events].[deleted_at] 为空)

显然是因为它需要一个 int 并且用户正在传递一个字符串。我怎样才能防止这种情况?

我尝试将其转换为(int)in ,getIdAttribute但没有做任何事情。

标签: phpsql-serverlaravel

解决方案


推荐阅读