Obnovenie obsahu stranky po zmene dat v DB

lamer
Člen | 6
+
0
-

Zdravim vsetkych nettakov.
Na zaciatok chcem napisat ze sa nette este len ucim a som uplny novacik.
Mam problem v prvom rade s cache kde pri akejkolvek zmene v sablone musim mazat cache.
Na to som si zvykol a viem s tym zit.

Ovela viac ma trapi nasledovny problem.

Mam sablonu napojenu na presenter User:preview.
V sablone vykreslujem zoznam uzivatelov z databazy.
Na kazdom riadku mam link na formular, kde mozem zmenit udaje konkretneho uzivatela.
To vsetko funguje bez problemov.
Zmenim teda udaje urobim update v databaze.
Nasledne chcem z tohoto formularu ist s5 na stranku Preview no tam sa mi nenacitaju zmenene udaje z db.
Udaje sa nacitaju az po manualnom obnoveni stranky v prehliadaci.

Je nejaka moznost ako vynutit znovunacitanie dat z db vzdy ked pridem na stranku preview?

Editoval lamer (31. 1. 2018 11:12)

iNviNho
Člen | 352
+
0
-

Na localhost netreba mazať cache, resp. neviem či nebudem kecať, ale skús nastaviť v bootstrap.php

<?php
$configurator->setDebugMode(TRUE);
?>

Zmaž ešte raz cache a potom vyskúšaj či stále treba mazať cache šablón.
POZOR: Na produkcií tento príkaz odstrán, alebo nastav len na svoju IP

CZechBoY
Člen | 3608
+
+1
-

Jak jdes na stranka zpet? Pres javascript (history.go(-1)) nebo klasicky pres http redirect v php?

lamer
Člen | 6
+
0
-

setDebugMode(TRUE) mam nastaveny.
boostrap.php mam nasledovny

<?php
require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Configurator;

//$configurator->setDebugMode('23.75.345.200'); // enable for your remote IP
$configurator->setDebugMode(TRUE);
$configurator->enableTracy(__DIR__ . '/../log');

$configurator->setTimeZone('Europe/Bratislava');
$configurator->setTempDirectory(__DIR__ . '/../tempCache');


$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->register();

//$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');

$container = $configurator->createContainer();

return $container;
$storage = new Nette\Caching\Storages\FileStorage('temp');
return $storage;
?>

pokusal som sa odstavit cache aj v neone

services
App\Model\UserManager
App\Forms\FormFactory
App\Forms\SignInFormFactory
App\Forms\SignUpFormFactory

router: App\RouterFactory::createRouter
nette.latteFactory:
setup:
- setTempDirectory(NULL)
cacheStorage:
create: Nette\Caching\Storages\DevNullStorage

lamer
Člen | 6
+
0
-

CZechBoY napsal(a):

Jak jdes na stranka zpet? Pres javascript (history.go(-1)) nebo klasicky pres http redirect v php?

priamo v sablone kde mam formular na zmenu mam butto:

<a n:href=„User:preview“ class=„btn btn-primary " role="button“ aria-pressed=„true“>Back to list</a>

CZechBoY
Člen | 3608
+
0
-

Tak to by melo byt ok.
Ten pohled na vypis uzivatelu nejak cachujes?

lamer
Člen | 6
+
0
-

Este snad pre upresnenie moja konfiguracia na localhoste je nasledovna:

macOS High Sierra Verzia 10.13.2
MAMP Verzia 4.2
PHP Verzia 7.1.6
Nette 2.4.0

V pohlade ani nikde nepouzivam cache.

Preview.latte výpis
{block content}
{if !$user->loggedIn}

<div class=„card card-inverse card-danger text-center“>
<div class=„card-block“>
<blockquote class=„card-blockquote“>
<h4>Access denied !</h4>
<footer>Only registered user with appropriate rights has the access to this section.</footer>
</blockquote>
</div>
 </div>

{else}
<div><h3>List of clients</h3></div>
<table class=„table table-hover table-sm“>
<thead>
<tr>
<th>Name</th>
<th>Surename</th>
<th>Email</th>
<th>Phone</th>
<th>Role</th>
<th align=„center“>Blocked</th>
<th> </th>
</tr>
</thead>
<tbody>
{foreach $users as $usr}
<tr>
<td>{$usr->name} </td>
<td>{$usr->surename}</td>
<td>{$usr->email}</td>
<td>{$usr->phone}</td>
<td>{$usr->role}</td>
<td align=„center“>{$usr->blocked? ‚Y‘: ‚N‘}</td>
<td><a href=„{link User:edit $usr->id}“><i class=„blue fa fa-lg fa-pencil“ aria-hidden=„true“ data-toggle=„tooltip“ data-placement=„top“ title=„Edit“></i></a></td>
</tr>
{/foreach}
</tbody>
</table>
{/if}

lamer
Člen | 6
+
0
-

UPDATE … po spusteni MAMP s verziou PHP 7.0.20 miesto 7.1.6 zacalo vsetko bez problemov fungovat :( teraz po ulozeni dat a navratu na User:preview sa zmeny okamzite zobrazia

lamer
Člen | 6
+
+1
-

Celé to divné správanie malo na svedomí nastavenie php na localhoste.
Používam u seba MAMP a v ňom som mal nastavé php7.1.6. Keď som prepol PHP na verziu 7.0.20, začalo sa správať všetko úplne korektne. Už netreba premazávať cache, v šablonách sa zobrazujú správne údaje.

Suma sumárum … problém bol vo verzii PHP nie v nastavení NETTE.

iNviNho napsal(a):

Na localhost netreba mazať cache, resp. neviem či nebudem kecať, ale skús nastaviť v bootstrap.php

<?php
$configurator->setDebugMode(TRUE);
?>

Zmaž ešte raz cache a potom vyskúšaj či stále treba mazať cache šablón.
POZOR: Na produkcií tento príkaz odstrán, alebo nastav len na svoju IP