簡體   English   中英

如何使用用戶查詢構建器Phalcon

[英]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 {
    }

然后可以在任何地方使用。 您正在使用FactoryDe​​fault依賴項注入器,因此您已經擁有模型服務。 那時,在您的控制器中,使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM