-
Conteúdo Similar
-
Por Carcleo
Tenho uma abela de usuarios e uma tabela de administradores e clientes.
Gostaria de uma ajuda para implementar um cadastro
users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
Queria ajuda para extender de user as classes Admin e Client
Olhem como estáAdmin
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User { use HasFactory; protected $fillable = [ 'name', 'email', 'password', 'registration' ]; private string $registration; public function create( string $name, string $email, string $password, string $registration ) { //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]); parent::$name = $name; parent::$email = $email; parent::$password = $password; $this->registration = $registration; } } User
<?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable { /** @use HasFactory<\Database\Factories\UserFactory> */ use HasFactory, Notifiable; static string $name; static string $email; static string $password; /** * The attributes that are mass assignable. * * @var list<string> */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var list<string> */ protected $hidden = [ 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array<string, string> */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } public function roles() : BelongsToMany { return $this->belongsToMany(Role::class); } public function hasHole(Array $roleName): bool { foreach ($this->roles as $role) { if ($role->name === $roleName) { return true; } } return false; } public function hasHoles(Array $rolesName): bool { foreach ($this->roles as $role) { foreach ($rolesName as $rolee) { if ($role->name === $rolee) { return true; } } } return false; } public function hasAbility(string $ability): bool { foreach ($this->roles as $role) { if ($role->abilities->contains('name', $ability)) { return true; } } return false; } } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
Tentei assim mas é claro que está errado...
public function store(Request $request, Admin $adminModel) { $dados = $request->validate([ "name" => "required", "email" => "required|email", "password" => "required", "registration" => "required" ]); $dados["password"] = Hash::make($dados["password"]); $admin = Admin::where("registration", $dados["registration"])->first(); if ($admin) return redirect()->route("admin.new") ->withErrors([ 'fail' => 'Administrador já cadastrados<br>, favor verificar!' ]); $newAdmin = $adminModel->create( $dados['name'], $dados['email'], $dados['password'], $dados['registration'] ); dd($newAdmin); $adminModel->save(); //$adminModel::create($admin); return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso'); }
-
Por ILR master
Fala galera, tudo certo?
Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
Segue código:
$host = 'servidor B';
$user = 'user';
$pass = '********';
$db = 'banco';
// conexão e seleção do banco de dados
$conexao = mysqlI_connect($host, $user, $pass, $db);
mysqlI_set_charset($conexao,"utf8");
//print "Conexão rodando e OK!";
//mysqlI_close($conexao);
Alguém pode me ajudar?
-
Por belann
Olá!
Estou tentando criar um projeto laravel e está dando o seguinte erro
curl error 60 while downloading https://getcomposer.org/versions: SSL certificate problem: unable to get local issu
er certificate
Já tentei atualizar o composer, mas dá o mesmo erro acima.
-
Por douglas79
Bom dia,
Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router.
Alguém pode me dizer o porquê que isso está ocorrendo?
Desde já agradeço a ajuda de vocês, que será bem vinda!
No aguardo!
Uso a versão 8.3.9 do PHP
Meu SO é o Windows 10 32 bits
-
Por landerbadi
Tenho uma tabela chamada "item" com os seguintes campos: id, name, active. Nela tem cadastrado vários itens. No campo "active" eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo active. E outra tabela chamada "product" com os seguintes campos (id, name) com os seguintes registros: 1, Produto A 2, Produto B 3, Produto C E uma terceira tabela chamada "product_item" com os seguintes campos (productID, itemID). No campo productID eu coloco o id de um produto da tabela "product" e no campo "itemID" eu coloco o id do produto da tabela "item". Exemplo: 1, 1 1, 3 1, 4 2, 3 2, 4 Sendo assim o produto A da tabela 'product" comtem os itens casa, cama e moto. Eu preciso fazer uma busca da seguinte maneira: Eu escolho um registro da tabela "item", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "product" que contenham a palavra "casa" e que os demais itens estejam ativos no siste. Ou seja, que contenham um "S" no campo "active" Eu consegui fazer isso da seguinte maneira: SELECT P.id, P.name, GROUP_CONCAT(I.name ORDER BY I.name) AS items FROM product P JOIN product_item PI ON P.id = PI.productID JOIN item I ON I.id = PI.itemID AND I.active = 'S' WHERE P.id NOT IN ( SELECT PI.productID FROM product_item PI JOIN item I ON I.id = PI.itemID WHERE I.active IS NULL ) AND P.id IN ( SELECT PI.productID FROM product_item PI JOIN item I ON I.id = PI.itemID WHERE I.name = 'mesa' ) GROUP BY P.id, P.name; O problema que eu estou tendo é o seguinte:
Quando eu jogo este código para o banco de dados onde eu já tenho os registros cadastrado o php fica lendo uma eternidade e não lista os produtos.
Usando código no banco de dados que eu fiz para testes ele funciona perfeitamente pois nele tem poucos registros.
No banco de dados principal a tabela "item" tem 11.196 registros. A tabela "product" tem 88.214 registros e a tabela "product_item" tem 518.378 registros.
Eu acredito que, devido o banco de dados ser muito grande, ele não consegue listar.
Alguém sabe de algum meio de resolver isso?
-