我是Laravel的新手,但却是老派PHP开发人员。我正在调整我的框架以适应Laravel框架。
目前,我的主要目标是使用雄辩的查询,而不需要在Laravel中进行数据库模式和迁移,因为我的数据库已经构建好并正在运行。
到目前为止,我已经成功地使用了雄辩的查询来与我的数据库进行交互。以下是运行中没有任何问题的部分代码:
$results = DB::table('my_table')->where('id', '=', 123)->orderBy('title')->get()->toArray();
问题是当我试图限制要从数据库中检索的字段时。到目前为止,我已经尝试过:
->select('id', 'title', 'description')
和
->get('id', 'title', 'description')
它给我返回了一个错误,如下所示:
Illuminate\Database\QueryExceptionSQLSTATE[42S22]:未找到列:1054"字段列表"中的未知列"title"(SQL:从
categories
中选择id
、title
、description
,其中id_parent
=781,activation
=1个顺序,按title
asc(找不到列您可能忘记了运行迁移。您可以使用php-artisan-migrate运行迁移。按下下面的按钮将尝试运行迁移。**
我知道我可能可以通过原始查询来实现这一点,但我的意图是使用Laravel在科技公司中广泛使用的一些功能。那么,在不需要构建数据库模式和所有迁移过程的情况下,是否有可能使用雄辩的查询来完成我想要完成的任务呢?如果是这样,该怎么办?
我不想开发迁移和模式的主要原因之一是,我的数据库有一个框架内表的前缀,我会根据每个项目/客户端进行更改,我不想花一些时间在如何构建带有前缀的迁移/模式上,等等
我已经检查了这个stackoverflow链接:没有Eloquent&数据库迁移?但这并不是我想要的。
编辑-解决方案:问题在于一个在列名上有额外空间的错误。因此,以下方法奏效了:
$results = DB::table('my_table')->select('id', 'title', 'description')->where('id', '=', 123)->orderBy('title')->get()->toArray();