[英]How to user query builder phalcon
我想像laravel的查詢生成器一樣查詢phalcon數據庫,但是出現了這個錯誤,並且我確定我已經調用了正確的模型名稱:
error: Model 'work_staffs' could not be loaded
模型:
use Phalcon\DI\FactoryDefault;
class WorkStaffModel
{
public static function getAll()
{
$di = FactoryDefault::getDefault()->get('modelsManager')
->createBuilder();
$result = $di
->from('work_staffs')
->getQuery()
->execute();
return $result;
}
}
/公共/ INDEX:
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Application;
use Phalcon\Loader;
use Phalcon\Mvc\Model\Manager as ModelsManager;
$di = new FactoryDefault;
$app = new Application;
$loader = new Loader;
$loader->registerDirs(
[
dirname(__DIR__) . '/app/controllers',
dirname(__DIR__) . '/app/models',
dirname(__DIR__) . '/service'
]
);
$loader->register();
include dirname(__DIR__) . '/lib/core.php';
include dirname(__DIR__) . '/lib/di.php';
// HERE DI INCULE DI FILE BUT IN DI FILE JUST INCLUDED:set conf,router,seesion,view
try
{
date_default_timezone_set('Asia/Ho_Chi_Minh');
$app->setDi($di);
$res = $app->handle();
$res->send();
}
catch(Exception $e)
{
if($e->getMessage() != 'Response was already sent') {
echo $e->getMessage();
}
}
我沒有設置DI modelsManager,但是在模型中它仍然可以工作,但是無法加載Model work_staffs
錯誤。
我懷疑work_staffs
是一個表,而不是模型。 QueryBuilder類使用模型進行選擇。
在app/models/WorkStaffs.php
您應該至少具有以下內容:
<?php
class WorkStaffs extends Phalcon\Mvc\Model {
}
然后可以在任何地方使用。 您正在使用FactoryDefault依賴項注入器,因此您已經擁有模型服務。 那時,在您的控制器中,使用WorkStaffs::find()
來獲取表中的所有結果確實非常容易。
1 /您應該在模型文件夾中擁有模型文件(php):WorksStaffs.php
<?php
class WorkStaffs extends Phalcon\Mvc\Model {
}
2 /在QueryBuilder的'From'子句中,應注入'Workstaffs'模型的名稱空間
$di = FactoryDefault::getDefault()->get('modelsManager')
->createBuilder();
$result = $di
->from('WorkStaffs');
希望它可以幫助您
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.