Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 与Model::query()等价的查询生成器;_Php_Database_Laravel_Eloquent - Fatal编程技术网

Php 与Model::query()等价的查询生成器;

Php 与Model::query()等价的查询生成器;,php,database,laravel,eloquent,Php,Database,Laravel,Eloquent,您好,出于某些原因,我不得不使用query builder而不是Eloquent,原因是我的模型名为KidsCafe,如果我使用Eloquent,它将使用myapp.kidscaves搜索表,但表名为kidscafes,这是抛出错误,因此,我必须在与数据库的交互中使用查询生成器 现在,我必须实现搜索功能,那么如何使用查询生成器实现类似的功能呢 $kids = KidsCafe::query(); 我的问题是如何实现query()使用查询生成器,还有没有其他方法可以在没有查询生成器的情况下使用e

您好,出于某些原因,我不得不使用query builder而不是Eloquent,原因是我的模型名为KidsCafe,如果我使用Eloquent,它将使用myapp.kidscaves搜索表,但表名为kidscafes,这是抛出错误,因此,我必须在与数据库的交互中使用查询生成器

现在,我必须实现搜索功能,那么如何使用查询生成器实现类似的功能呢

$kids = KidsCafe::query();
我的问题是如何实现query()使用查询生成器,还有没有其他方法可以在没有查询生成器的情况下使用eloquent


提前感谢您

您可以通过在模型上定义表格属性来手动指定表格名称:

class KidsCafe extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'kidscafes';
}

您还可以使用setTable()函数动态地使用另一个表的名称,如下所示-

$kidscafes = new KidsCafe;
$kidscafes->setTable('kidscafes');

它抛出了什么样的错误?SQLSTATE[42S02]:找不到基表或视图:1146表“myapp.Kidscapes”不存在(SQL:select*from
Kidscapes
where
Kidscapes
deleted\u at
为空)@GazmendSahiti,这是我在其上使用eloquent时出现的错误,这就是为什么我的所有查询都在查询生成器上,但是我不知道query()使用的语法谢谢,它解决了我的问题,但是没有其他的查询生成器语法可以与雄辩的Model::query()等效@金斯莱:好消息!。您可以在不使用“模型”的情况下使用查询生成器,如DB::table('kidscafes')->get();查看Laravel文档了解更多详细信息