Dostęp do innej tabeli z Modelu

W modelu Table nie można użyć metody $this->fetchTable(„Projects”)  – ta metoda dostępna jest tylko dla Controllers.

src/Model/Table/InvoicesTable.php

use Cake\ORM\TableRegistry;

class InvoicesTable extends Table
{

  public function getProjects() { 
    
    $projects = TableRegistry::getTableLocator()->get('Projects')
                  ->find()
                  ->where(['is_active' => 1])
                  ->all();
    ....
  } // getProjects()
...

} // class

Rsync

Wszystkie pliki i podkatalogi /home/john/my_app/ zostaną wgrane do  roboczego katalogu .

# rsync -av johnny@194.127.230.100:/home/johnny/my_app/ .

Backup zostanie wgrany ze zdalnego systemu do katalogu roboczego

# rsync -av johnny@194.137.231.100:/home/johnny/backup/myapp-20251120.sql .

CakePHP 5 – Formularz – Powiązania modeli

$this->Form->create($article);

// Article controls.
echo $this->Form->control('title');

// Author controls (belongsTo)
echo $this->Form->control('author.id');
echo $this->Form->control('author.first_name');
echo $this->Form->control('author.last_name');

// Author profile (belongsTo + hasOne)
echo $this->Form->control('author.profile.id');
echo $this->Form->control('author.profile.username');

// Tags controls (belongsToMany)
// as separate inputs
echo $this->Form->control('tags.0.id');
echo $this->Form->control('tags.0.name');
echo $this->Form->control('tags.1.id');
echo $this->Form->control('tags.1.name');

// Inputs for the joint table (articles_tags)
echo $this->Form->control('tags.0._joinData.starred');
echo $this->Form->control('tags.1._joinData.starred');

// Comments controls (hasMany)
echo $this->Form->control('comments.0.id');
echo $this->Form->control('comments.0.comment');
echo $this->Form->control('comments.1.id');
echo $this->Form->control('comments.1.comment');

$this->Form->end();

Czytaj dalej CakePHP 5 – Formularz – Powiązania modeli

css spiner

.spinner {
  /* ... */
  opacity: 0;
  animation:
    fadeIn 500ms 100ms forwards,
    rotate 1s linear infinite;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes rotate {
  to {
    transform: rotate(360deg);
  }
}

PHP – Zwraca datę początku i końca tygodnia – na podstawie Roku i nr tygodnia

 private function getWeekDateRange($year, $week) {

// Utworzenie obiektu DateTime dla pierwszego dnia określonego tygodnia
$dto = new DateTime();
$dto->setISODate($year, $week);

// Pierwszy dzień tygodnia (poniedziałek)
$start_date = $dto->format('Y-m-d');

// Dodanie 6 dni aby otrzymać ostatni dzień tygodnia (niedziela)
$dto->modify('+6 days');
$end_date = $dto->format('Y-m-d');

  return [
    'start_date' => $start_date,
    'end_date' => $end_date
  ];
}

JS – $.ajax – console.error

$.ajax({
        url: '/api/products/get-all.json',
        type: 'GET',
        dataType: 'json',
        success(resp) {
            if(resp.resp.error) {
                $("#feedback").text(resp.resp.error).addClass('text-danger');
                return;
            }
            $("#feedback").text(resp.resp.success).addClass('text-success');
        },
        error(e){
           var message = "";
           if(e.responseJSON !== 'undefined') message = e.responseJSON.message;
           if(e.responseText !== 'undefined') message = e.responseText.message;
           console.log(message ); 
        }
    });

Docker Desktop – options

Przy dodawaniu nowego kontenera:

        Komputer lokalny       Docker
---------------------------------------------------
Port   :  5678 | 5679       :  5678

Volume : C:\...\n8n-data1   : /home/node/.n8n
Volume : C:\...\n8n-pliki   : /pliki_n8n

Zmienne:

GENERIC_TIMEZONE : Europe/Warsaw

TS               : Europe/Warsaw

Postgres – tabele

Tworzenie tabeli

CREATE TABLE users (
    id              serial  primary key,
    name            varchar(80),
    age             int,           -- how many years
    temp_hi         int,           -- high temperature
    prcp            real,          -- precipitation
    date            date
);
-- <komentarz>

DESC users – struktura tabeli users

\d+ users

Typy

int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp, interval

Wstawianie danych – kopiowanie z pliku do tabeli

COPY users FROM '/home/joe/users.txt';

Postgres – komendy

Poziom klienta – terminala psql

\l[+]      - lista baz danych


\dt[+]      - lista tabel
\dp         - tabele, widoki, uprawnienia

\du     - użytkownicy / role

DESC users – struktura tabeli users

\d+ users
\dT[+]      - schema
\dO[+]      - collations
help \?
\q      - WYJŚCIE
exit
select version();

PostgreSQL 13.20 (Debian 13.20-0+deb11u1) on x86_64-pc-linux-gnu, compiled by gcc