$grid = $this->db
->select("TrackedObjectId")->as("Id")
->from("v_tracked_object_grid")
->where("FirstPositionCountry IN (%SQL)", $locations->select("Country"))
->where("FirstPositionAdmin1 IN (%SQL)", $locations->select("Admin1"))
->where("FirstPositionAdmin2 IN (%SQL)", $locations->select("Admin2"))
->where("FirstPositionSettlement IN (%SQL)", $locations->select("Settlement"));
Kdybych udělal toto, předpokládám, že to bude pomalejší, jaká by byla rychlejší alternativa?
Zdravim, mam tu nette 2.4 za reverse proxy, posilam si X-Forwarded-For, X-Forwarded-Host a dalsi. Aplikace ale pri presmerovani napr. na /sign/in pri stavbe url pouziva http_host misto http_x_forwared_host. V configu mam trusted ip te proxy. Mam workaround v podobe upravy RouterFactory.php, kam jsem na radek 253 pridal:
if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$url->setHost(str_replace([':80', ':443'], "", $_SERVER['HTTP_X_FORWARDED_HOST']));
}
Nicmene verim, ze jsem jen nenasel nejake standardni reseni. Poradite mi, prosim?
public function match(Nette\Http\IRequest $httpRequest): ?array
{
$httpRequest = parent::match($httpRequest);
if(!$httpRequest) return $httpRequest;
$str = $this->model->getByAddress($httpRequest['id']);
if(!$str) return null;
return $httpRequest;
}
ahoj, dá se prosím v Nette nastavit, aby Tracy posílala emailrm i html výstup bluescreen, když nastane chyba? Např.
Nette\MemberAccessException: Call to undefined method App\Datagrids\SomeDatagridControl::isAjax(). in .../vendor/nette/utils/src/Utils/ObjectHelpers.php:65
source: https://example.com/...
Občas taková stručná hláška je málo
monolog:
handlers:
email: Core\Log\YoursEmailHandler(Monolog\Logger::WARNING)
public function __construct(int $level = Logger::DEBUG, bool $bubble = true)
{
parent::__construct($level, $bubble);
}
protected function send($content, array $records) : void
{
.....tady pošleš email
Když můj formulář vypadá takto:
<?php
$form = new Form;
$form->add('password', 'Heslo nové heslo:')
->setHtmlAttribute('autofocus')
->addRule(Form::MIN_LENGTH, 'Heslo musí mít minimálně %d znaků', 8)
->addRule(Form::PATTERN, 'Heslo musí obsahovat velká písmena', '[A-Z]')
->addRule(Form::PATTERN, 'Heslo musí obsahovat malá písmena', '[a-z]')
->addRule(Form::PATTERN, 'Heslo musí obsahovat číslici', '[0-9]')
->addRule(Form::PATTERN, 'Heslo musí nějaký speciální znak', '[^\x00-\x20\x30-\x39\x41-\x5a\x61-\x7a]')
->setRequired('Vyplňte prosím Váše nové heslo.');
vyrenderované html je:
<input
type="password"
name="password"
autofocus
pattern="[^\x00-\x20\x30-\x39\x41-\x5a\x61-\x7a]" ← Tohle není pravda, je to jen poslední pravidlo
required
data-nette-rules="[
{
"op": ":filled",
"msg": "Vyplňte prosím Váše nové heslo."
},
{
"op": ":minLength",
"msg": "Heslo musí mít minimálně 8 znaků",
"arg": 8
},
{
"op": ":pattern",
"msg": "Heslo musí obsahovat velká písmena",
"arg": "[A-Z]"
},
{
"op": ":pattern",
"msg": "Heslo musí obsahovat malá písmena",
"arg": "[a-z]"
},
{
"op": ":pattern",
"msg": "Heslo musí obsahovat číslici",
"arg": "[0-9]"
},
{
"op": ":pattern",
"msg": "Heslo musí obsahovat nějaký speciální znak",
"arg": "[^\\x00-\\x20\\x30-\\x39\\x41-\\x5a\\x61-\\x7a]"
}
]">
PHP-Notice
o Uninitialized string offset: 0
, no uplne se mi nechce kvuli tomu zasahovat do jadra abych tam vypnul notice reporting, a to stale neresi ten problem ze, jen ho proste vypnu. Byl bych rad kdyby to slo nejak "bez hacku", ma to nekdo vyresene? P.S.: samozrejme to dela i pri jakemkoli dumpu kdekoli..Stack trace:
#0 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(543): Tracy\Bar->Tracy\{closure}(8, 'Uninitialized s...', '/my-project/...', 543, Array)
#1 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(508): Tracy\Dumper::truncateString('', 150)
#2 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(418): Tracy\Dumper::encodeString('', 150)
#3 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(465): Tracy\Dumper->toJson('', Array, 4)
#4 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(465): Tracy\Dumper->toJson(Object(Nette\Http\Response), Array, 3)
#5 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(465): Tracy\Dumper->toJson(Object(Authenticators\CookiesAuthenticator), Array, 2)
#6 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(465): Tracy\Dumper->toJson(Object(App\Presenters\HomepagePresenter), Array, 1)
#7 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(189): Tracy\Dumper->toJson(Object(Nette\Application\Application), Array)
#8 /my-project/vendor/tracy/tracy/src/Tracy/Dumper/Dumper.php(127): Tracy\Dumper->asHtml(Object(Nette\Application\Application))
#9 /my-project/vendor/nette/di/src/Bridges/DITracy/templates/ContainerPanel.panel.phtml(56): Tracy\Dumper::toHtml(Object(Nette\Application\Application), Array)
#10 /my-project/vendor/nette/di/src/Bridges/DITracy/ContainerPanel.php(79): require('/my-project/...')
#11 /my-project/vendor/tracy/tracy/src/Tracy/Bar/Bar.php(148): Nette\Bridges\DITracy\ContainerPanel->getPanel()
#12 /my-project/vendor/tracy/tracy/src/Tracy/Bar/Bar.php(121): Tracy\Bar->renderPanels('-r0')
#13 /my-project/vendor/tracy/tracy/src/Tracy/Bar/Bar.php(93): Tracy\Bar->renderHtml('redirect', '-r0')
#14 /my-project/vendor/tracy/tracy/src/Tracy/Debugger/Debugger.php(274): Tracy\Bar->render()
#15 [internal function]: Tracy\Debugger::shutdownHandler()
#16 {main}
Tak jeste jeden dotaz :D
Jak si v nette.ajax.js
od dobese v $.nette.ext('myext', {success:function(){}})
, zjistim ze pri redrawControl()
toho snippetu se vlastne obsah snippetu nezmenil? realne na handleSnippetUpdate
jen zmenim obsah promenne, kterou v sablone ve snippetu vypisu. Mam totiz na tenhle update navazane akce v success metode toho ajaxu, ktere jsou ale otravne pokud se obsah nezmenil, lepe receno pro produkci nezadouci. Budu zatim hledat jinou cestu, ale tohle me zajima, nejakou dobu jsem js od dobese nepouzival, a tohle mi prijde jako trivialni fiicura, tak se zkusim zeptat tady :-)
Ahoj, netuší někdo, jak by se dalo debugnout, když se mi při každém requestu generuje znovu DIC?
Zatím jsem zjistil, že se 2x volá DependencyLoader::isExpired() a v obou případech vždy true.
V čistém Nette 3 web-project je to jednou. Také mi zůstává soubor temp\cache\nette.application\touch
, webproject má tento adresář prázdný.
Ahoj, prosím o radu. Nedaří se mi vstříknout Nette\Bridges\ApplicationLatte\TemplateFactory
do své registrované třídy.
Error: Service of type MyClass: Service of type Nette\Bridges\ApplicationLatte\TemplateFactory needed by $templateFactory in __construct() not found. Did you add it to configuration file?
Když se pokusím registrovat i tu, tak mi to zas píše, že už existuje a přepisuji jí. Musí to být nějaká hrozná blbost. Prosím