JZechy fileupload upload souboru a uložení informace o souboru do db
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kini
- Člen | 13
Dobrý den.
V Nette jsem začátečník a chci si na web dát upload souborů. Rozhodl jsem
se k tomu použít jZechy addon, úspěšně jsem ho nainstaloval a nahrál
několik souborů. Na problém jsem narazil až když jsem chtěl uložit url
souboru a id uživatele který ho uploadoval.
<?php
public function save(Nette\Http\FileUpload $file, array $params = array()) {
$file->move("../galerie/". $file->getSanitizedName());
}
?>
Předpokládám že to id do modelu dostanu z presenteru v $params
<?php
->setParams(["id" => 10]);
?>
Do modelu jsem připsal kod pro vložení dat do db a po uploadu mi to
vrátilo chybu:
Call to a member function table() on null
Model vypadá takto:
<?php
public function save(Nette\Http\FileUpload $file, array $params = array()) {
$file->move("../galerie/". $file->getSanitizedName());
$this->database->table(self::IMG_TABLE_NAME)->insert(
array(
self::COLUMN_IMAGE => $params,
)
);
?>
- kini
- Člen | 13
Ano máte pravdu.
Myslel jsem že to půjde pomocí extends jako u ostatních modelů co mám
ale nešlo
<?php
class UploadModel extends BaseManager implements \Zet\FileUpload\Model\IUploadModel {
?>
Musel jsem přenést obsah souboru BaseManager.php do toho upload modelu.
<?php
/** @var Context Instance třídy pro práci s databází. */
protected $database;
/**
* Konstruktor s injektovanou třídou pro práci s databází.
* @param Context $database automaticky injektovaná třída pro práci s databází
*/
public function __construct(Context $database)
{
$this->database = $database;
}
?>
Editoval kini (30. 3. 2017 15:18)