Laravel 5.5 Eloquent没有在搜索字符串周围添加引号

时间:2017-11-10 16:14:07

标签: php laravel laravel-5 eloquent laravel-5.5

我正在尝试将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

2 个答案:

答案 0 :(得分:2)

您不应该关心引号,因为错误来自表而不是来自缺失的引号(Laravel使用PDO来绑定查询参数)。这里的问题可能是数据库中缺少表。

因此,请确保您已经运行:

php artisan migrate

或者如果您还没有创建此类表,则应创建新的迁移,然后运行此命令以在数据库中创建表

答案 1 :(得分:0)

很可能你的表名有问题。如果您的表名是帖子,Laravel会使用约定,那么您的模型名称应该是发布其他您必须在模型本身中定义表名。您的模型名称和名称是什么表名?