Open vazjunior opened 1 year ago
pelo que entendi, você faz o relacionamento pelas próprias classes modelo.
Exemplo:
Quero pegar os dados do usuário que está na tabela "users", mas também quero pegar o endereço deste mesmo usuário que está em outra tabela chamada "addresses".
você poderia fazer algo assim:
namespace App\Models;
use CoffeeCode\DataLayer\DataLayer;
class User extends DataLayer {
public function __construct()
{
parent::__construct("users", []);
}
}
namespace App\Models;
use CoffeeCode\DataLayer\DataLayer;
class Address extends DataLayer {
public function __construct()
{
parent::__construct("addresses", []);
}
}
require_once __DIR__ . '/../vendor/autoload.php';
use App\Models\Address;
use App\Models\User;
$userId = 1;
$user = (new User)->findById($userId);
$address = (new Address)->findById($user->id_address);
echo "{$user->name}, está morando na rua {$address->street}";
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
id_address INT,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE addresses (
id INT AUTO_INCREMENT PRIMARY KEY,
street VARCHAR(255) NOT NULL,
neighborhood VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Uso esse componentes mas até hoje não entendi como fazer um JOIN entre duas ou mais tabelas, alguém poderia dar um exemplo melhor do que tem na descrição do componente ?