Formul8r dva prvky s rovnakym menom

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

Caute mam situaciu, ze ma tabulku
user(id,…)
inbox(id, idUser,…)
outbox(id, iduser,…)

no a potreboval by som v jednom forme dva selecty v jednom budem vyberat uzivatela co prijal zasielku a v druhom co odoslal zasielku, ak pouzijem

$form->addSelect(‚idUser‘,‚Prijimatel‘)
a
$form->addSelect(‚idUser‘,‚Odosielatel‘)

tak samozrejme mam chybu, ze nemozu existovat dva prvky s rovnakym menom…ale ko to pomenovat a spravne namapovat na stlpce v DB?

CZechBoY
Člen | 3608
+
0
-

Pojmenuj to jak chceš třeba sender a recipient. Při vkládání do databáze to namapuješ tak jak potřebuješ.

$database->table('inbox')->insert(['idUser' => $values->recipient]);
$database->table('outbox')->insert(['idUser' => $values->sender]);

Nicméně mi přijde tenhle způsob ukládání dat zbytečný. Nestačilo by ti u zprávy (zásilky) uložit kdo je odesilatel a kdo je příjemce? Než mít 2 tabulky na příchozí a odchozí?

cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

Pojmenuj to jak chceš třeba sender a recipient. Při vkládání do databáze to namapuješ tak jak potřebuješ.

$database->table('inbox')->insert(['idUser' => $values->recipient]);
$database->table('outbox')->insert(['idUser' => $values->sender]);

Nicméně mi přijde tenhle způsob ukládání dat zbytečný. Nestačilo by ti u zprávy (zásilky) uložit kdo je odesilatel a kdo je příjemce? Než mít 2 tabulky na příchozí a odchozí?

aj to by slo, dam si to do jednej tabulky napr. idUserIn a idUser Out
a pri vypise do sablony ako budem pristupovat k name napr. v jednom vypise?

CZechBoY
Člen | 3608
+
0
-

Nevim co používáš za databázovou vrstvu, ale já si dělám aliasy a je mi jedno na jaké databázové vrstvě jedu.

cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

Nevim co používáš za databázovou vrstvu, ale já si dělám aliasy a je mi jedno na jaké databázové vrstvě jedu.

pouzivam Nette\Database\ a tie aliasy su zalezitost vstvy alebo napr. mysql db…?

CZechBoY
Člen | 3608
+
0
-

Pokud používáš Nette\Database\Table tak třeba takhle

$context->table('abc')
	->select('abc.idSender abcSender')
	->select('cba.idSender cbaSender')
cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

Pokud používáš Nette\Database\Table tak třeba takhle

$context->table('abc')
	->select('abc.idSender abcSender')
	->select('cba.idSender cbaSender')

toto si hodim do modelu? napr…

CZechBoY
Člen | 3608
+
0
-

jj
nebo ukaž jak máš teď model

cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

jj
nebo ukaž jak máš teď model

model triedy pre pritup ku konkretnej tabulke

<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace App\Model;

use Nette;

/**
 * Description of RecordManager
 *
 * @author Holub
 */
class RecordManager extends BaseManager
{
    /** Konstanty pre manipulaciu s modelom*/
    const TABLE_NAME = 'record';

    /**
     * return all rocords from database
     * @return Selection   record list
     */

    public function getRecords()
    {
	return $this->database->table(self::TABLE_NAME);
    }






}
CZechBoY
Člen | 3608
+
0
-

@cujan To je dost obecný… Jak to potom používáš?

cujan
Člen | 410
+
0
-

CZechBoY napsal(a):

@cujan To je dost obecný… Jak to potom používáš?

no napr. v homepagepresenter naplnam grido
@CZechBoY

<?php

namespace App\Presenters;

use Nette;
use App\Model;

use Grido\Grid;


class HomepagePresenter extends BasePresenter
{


    public function renderDefault()
    {
    $this->template->records = $this->recordManager->getRecords();
    }

    public function createComponentRecordGrid()
    {
	$grid = new Grid();
	$grid->setModel($this->recordManager->getRecords());
	$grid->addColumnDate('shippingDate', 'Dátum prijatia záznamu');
	$grid->addColumnText('forwarder.name', 'Zaslal - kto');
	$grid->addColumnDate('dateOfTransmission', 'Zaslal - dátum');
	$grid->addColumnText('fileNumber', 'číslo spisu odosielateľa');
	$grid->addColumnText('subject', 'Vec');
	$grid->addColumnText('processor.surname', 'Spracovateľ');
	$grid->addColumnDate('dateOfSubmission', 'Dátum odovzdania');
	$grid->addColumnDate('implementationDate', 'Dátum vybavenia');
	//$grid->addColumnText('aaa', 'Vybavené dresát');
	$grid->addColumnText('shippingType.name', 'Vybavené - ako');
	$grid->addColumnText('registrationMark.name', 'RZ');
	$grid->addColumnDate('disposal', 'Záznam o vyradení');

	return $grid;
    }
}

Editoval cujan (2. 2. 2017 10:35)