Salve salve, blz??
Alguns validations
Separado por | >> required|string|max:80
required
string
numeric
date
email
nullable
max:50
lowercase
after:start
in:A,B
With, consulta de outra tabela.
SeMovement::with(['se_product:id,name'])->with(['se_category:id,name'])->select('se_movements.*')->orderBy('created_at', 'DESC');
//No model ter essas duas, exemplo:
public function se_product(): HasOne
{
return $this->hasOne(SeProduct::class, 'id', 'se_product_id');
}
public function se_category(): HasOne
{
return $this->hasOne(SeCategory::class, 'id', 'se_category_id');
}
With, consulta tabela da tabela
ProjectNote::with(['project:id,name,client_id','projectTask:id,name','project.client:id,name'])
//No trecho >> project.client:id,name
//public function da tabela1.public function da tabela2
//Ter no model da tabela 1 e ter no model da tabela 2, ira relacionar: resultado.tabela1.tabela2.name
Laravel with com closure
Project::with(['client' => function ($oQuery) {
$oQuery->select('id','name')
->where('status', 'A')
->orderBy('name');
}])->select(['id','name','client_id'])->where('status','A')->orderby('name')->get();
//Selecionar campos somente que precisa, não carregar demais
Model com appends.
protected $appends = ['status_name'];
public function getStatusNameAttribute()
{
$aOptions = [
'A' => 'Ativo',
'B' => 'Bloqueado',
];
return $aOptions[$this->attributes['status'] ?? ''] ?? '';
}
Laravel, uma forma de retorna o nome da tabela ($table). No model
public static function getTableName()
{
return with(new static)->getTable();
}
Laravel, uma forma de fazer join, direto no model + controller
public function scopeJoinClients($query)
{
return $query->join(Client::getTableName(), 'projects.client_id', '=', 'clients.id');
}
//No controller
PHP / laravel. Substituir os BR para \n (enter), com pregreplace
$mensagem = preg_replace('/
/', "\n", $mensagem);
Update direto. Laravel
use Illuminate\Support\Facades\DB;
DB::table(XXX::getTableName())->where('id', $oRequest->id)->update(['order' => $oRequest->order]);
Migrate com chave estrangeira. Exemplo:
$table->foreignIdFor(Client::class)->references('id')->on('clients')->constrained()->onUpdate('cascade')->onDelete('cascade');
$table->foreignIdFor(Client::class,'delivery_id')->nullable()->references('id')->on('clients')->constrained()->onUpdate('cascade')->onDelete('cascade');
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Se tiver mais formas e dicas, deixa seu comentário.
Um abraço, e até a próxima