Powiązanie belongsToMany w postaci checkbox-ów. Tabele users – recommendations_users – recommendations
Kategoria: cakePHP 4
cakephp 4 – przekierowanie z parametrami query
return $this->redirect(['action' => 'rcp', '?' => $this->request->getQueryParams()]);
cakephp 4 – zamiana przecinków na kropki -automat
Wartości finansowe typu decimal(10, 2):
class InvoicePosition extends Entity { protected function _setNetto($netto) { return str_replace(',', '.', $netto); // zamienia przecinki na kropki w Invoices.netto } }
Javascript – parseFloat nie akceptuje przecinka ’,’
netto = parseFloat( ($(this).val()).replace(',', '.') ); $("#netto").val( netto.toFixed(2) )
Czytaj dalej cakephp 4 – zamiana przecinków na kropki -automat
cakePhp 4 – dodawanie rekordów do ResultSet
Pobraliśmy wyniki Model->find() w postaci ResultSet. Jak dodać kolejny ResultSet?
Ajax -onKeyUp – filter table rows
Filtrowanie wierszy tabeli – dopasowanie do 2 kolumn
Ajax – cakephp4 – onKeyUp – wyszukiwanie projektów po nazwie
Wyszukiwanie projektów po numerze (ciąg znaków) Ajax Czytaj dalej Ajax – cakephp4 – onKeyUp – wyszukiwanie projektów po nazwie
GUS API
Konfiguracja i przykład użycia w CakePHP 4 – pakiet gusapi/gusapi v.6.1.1 Czytaj dalej GUS API
cakePHP – dociągnięcie modelu powiązanego
mmm
$quest = $this->Questionnaires->get($id, [ 'contain' => [ 'Answers', 'Creators' => function($q) { return $q->select(['id', 'firstname', 'lastname']); }] ]); // Dociągamy dodakowe modele dla uprawnionych if($this->hasAccess()) { $this->Questionnaires->loadInto($quest, [ 'Projects' => function($q) { return $q->select(['id', 'manager_id']); } ]); }
cakePHP – beforeSave
CompaniesTable,
$this == Companies, $this->Projects - powiązana tabela
use Cake\Event\EventInterface; use Cake\Database\Expression\QueryExpression; class CompaniesTable extends Table { public function beforeSave(EventInterface $event, $entity, $options) { // zmienione pole manager_id if($entity->isDirty('manager_id')) { $entity->prev_manager_id = $entity->getOriginal('manager_id') ; // pole przed zmianę // podstawienie innej kolumny, wyrażenia $set_prev_manager_id = new QueryExpression('prev_manager_id = manager_id'); $this->Projects->updateAll( [ $set_prev_manager_id, 'manager_id' => $entity->manager_id ], [ 'company_id' => $entity->id ] ); } }
Mysql – sortowanie ciągu znaków jako INT
Sortowanie po 3 kategoriach. Ostatnia kategoria jest typu znakowego ale przechowuje numery np. 5, 5a, 5b, 6, 6a. Chcemy sortować tak jak liczby
$query->order(['Procedures.proc_type_id', 'Procedures.proc_category_id']); -- numer jest polem typu varchar, wartości: 5, 5a, 5b, 6, 6a ... $query->orderAsc( function($exp, $q) { return $q->func()->cast('numer','UNSIGNED'); });
QR code – cakephp 4
Integracja QR code z cakephp 4
Źródło: https://sourceforge.net/projects/phpqrcode/
Czytaj dalej QR code – cakephp 4
cakephp 4 – DebugKit
Instalacja i konfiguracja
cakephp 4 – Theme
Dodawanie szablonu HTML5 pobranego z zewnątrz
cakephp 4 – kroki budowy aplikacji
Etapy budowy aplikacji CakePHP 4
Przygotować dokumentację projektu: aplikacja, visio,
-- przygotować informacje dir: /var/www/mysite.pl database: mysitedb user: 'user1'@'localhost' passwd: "gFtd67%6djEsws0**6!x8s"
Cakephp 4 – app.php – konfiguracja
Typowe wartości w strefie polskiej:
Export CSV
Export do excela w formacie CSV:
cakephp 4 – binance api
Dokumentacja github: https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md#test-connectivity
Pobranie kursu BTCUSD
https://api.binance.com/api/v3/avgPrice?symbol=BTCUSDT
Odp JSON
{"mins":5,"price":"47961.16424359"}
API walutomat.pl
Należy utworzyć konto w serwisie następnie wygenerować API key.
Endpoint API: https://api.walutomat.pl/api/v2.0.0/
-
- market_fx/best_offers (bez api key)
- direct_fx/rates – wymagany klucz API
Kursy walut – API NBP
https://api.nbp.pl/ – NBP – kursy średnie, sprzedaży, kupna, na dany dzień
https://github.com/codenix-sv/coingecko-api – coingecko.pl API – kryptowaluty
https://api.walutomat.pl/v2.0.0/ – walutomat.pl API
cakephp 4 – coinGecko API
# composer require codenix-sv/coingecko-api
cakephp 4 – AJAX
cakephp 4 – cookies
czytanie
cakephp 4 – parametry ścieżki
// /subdir/articles/edit/1?page=1 $here = $request->getRequestTarget(); $uri = $request->getUri(); $path = $uri->getPath(); $query = $uri->getQuery(); $host = $uri->getHost();
$session = $this->request->getSession()->read('Auth.User.name');
cakephp 4 – file upload –
Interfejs controller’a – input name=’attachment’
Cakephp 4 – export xml
AppController + RequestHandlerComponent
Przydatne
blokowanie zmiany usera przez modyfikację formularza
// metoda edit() $this->Articles->patchEntity($article, $this->request->getData(), [ 'accessibleFields' => ['user_id' => false] ]);
Zdefiniowanie zalogowanego usera dla całego kontrolera
public function initialize() : void { parent::initialize(); $user_id = $this->request->getAttribute('identity')->getIdentifier(); }
Auth – opcje
// Parametry logowania zalogowanego użytkownika $email = $this->Authentication->getIdentity()->get('email'); $user_id = $this->Authentication->getIdentity()->get('id'); $user_id = $this->Authentication->getIdentifier(); $user_id = $this->request->getAttribute('identity')->getIdentifier();