Dibi vrací SQL query namísto výsledku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tpmar
Člen | 30
+
0
-

Zdravím,
snažím se udělat běžnou věc jako normálně ale překvapilo mě, že to nefunguje (viz titulek).

Model

<?php

namespace App\Model;

use Nette,
	App\Model;

class BaseModel extends \Nette\Object {

	/** @var \DibiConnection */
	public $db;

	public function __construct(\DibiConnection $connection) {
		$this->db = $connection;
	}

	public function actualPrice() {
		return $this->db->select("cena")->from("tableprice");
	}
}

BasePresenter

<?php

namespace App\Presenters;

use Nette,
	App\Model;


/**
 * Base presenter for all application presenters.
 */
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
	/** @inject @var \App\Model\BaseModel */
    public $baseModel;

	public function beforeRender() {
		$this->template->cena = $this->baseModel->actualPrice();
	}
}

Config.local

services:
	- App\Model\UserManager
	- App\Model\BaseModel
	router: App\RouterFactory::createRouter

extensions:
	dibi: Dibi\Bridges\Nette\DibiExtension22

dibi:
	host: 127.0.0.1
	username: username
	password: pass
	database: database
	lazy: TRUE

Děkuji za rady.

Azathoth
Člen | 495
+
0
-

Zavolej na konci té metody actualPrice ještě fetchAll().

tpmar
Člen | 30
+
0
-

Teď mi to pro změnu píše „Array to string conversion“. Nějak si nejsem zatím jistý jak se dostat v Nette k buňce pole. Poradil by mi někdo? :)

Azathoth
Člen | 495
+
0
-

No, to ti vytáhlo v poli všechny ceny. Tak si tu proměnnou cena dumpni, podívej se, co v ní je a vytáhni si z toho pole, co potřebuješ.

tpmar
Člen | 30
+
0
-

Díky, už to jede. Sice mi přijde, že kód není úplně čistý ale hlavní je účel :) Chvíli mi trvalo, než jsem si našel, jak se pracuje s poli v Nette.