我正在尝试将URL中的值传递给控制器以使用URL中的字符串获取数据,这里是将数据传递给控制器的路由,这是正常工作,并且正确的值使其成为控制器
Route::middleware('auth:api')->get('test/{name}', 'EmployeeController@getAllEmployees');
我试过$ name," $ name" ,' $ name' ,'%' 。 $ name。 '%' ,'%$ name%'
class EmployeeController extends Controller
{
public function getAllEmployees($name)
{
$model = Employee::where('Name', 'LIKE', $name)->get();
return $model->tojson();
}
}
这是错误,因为您可以看到值周围没有引号,这是sqlsrv在运行查询时所绊倒的
"SQLSTATE[42S02]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid object name 'Tabel_Name'. (SQL: select * from [Tabel_Name] where [Name] LIKE test)",
我做错了什么?
Laravel 5.5 SQLSRV php 7.0
答案 0 :(得分:2)
您不应该关心引号,因为错误来自表而不是来自缺失的引号(Laravel使用PDO来绑定查询参数)。这里的问题可能是数据库中缺少表。
因此,请确保您已经运行:
php artisan migrate
或者如果您还没有创建此类表,则应创建新的迁移,然后运行此命令以在数据库中创建表
答案 1 :(得分:0)
很可能你的表名有问题。如果您的表名是帖子,Laravel会使用约定,那么您的模型名称应该是发布其他您必须在模型本身中定义表名。您的模型名称和名称是什么表名?