Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
Merhaba

Tablolarımızda alanlar oluyor, name, phone vs ve biz bunları projelerimizde Adı, Telefon gibi Türkçe ya da başka dillerde kullanıyoruz. Bunları bazen Türkçeleştirmek, elle sisteme yazmak iyice sıkıyor, zaman alıyor. Bunun için şöyle bir konsol komutu yazdım. Sadece Türkçe için ama aynı mantıkla yola çıkarak çok dilli hale getirilebilir.
<?php

namespace App\Console\Commands;

use Schema;
use Illuminate\Console\Command;

class GenerateLabels extends Command
{
 /**
 * The name and signature of the console command.
 *
 * @var string
 */
 protected $signature = 'label:generate {table}';

 /**
 * The console command description.
 *
 * @var string
 */
 protected $description = 'Generate labels from given table';

 /**
 * Create a new command instance.
 *
 * @return void
 */
 public function __construct()
 {
 parent::__construct();
 }

 /**
 * Execute the console command.
 *
 * @return mixed
 */
 public function handle()
 {
 $columns = Schema::getColumnListing($this->argument('table'));

 $known = [
 'active' => 'Aktif',
 'email' => 'Email',
 'gsm' => 'GSM',
 'password' => 'Şifre',
 'photo' => 'Resim',
 'title' => 'Başlık',
 'name' => 'Adı',
 'surname' => 'Soyadı',
 'description' => 'Açıklama',
 'created_at' => 'Oluşturulma Tarihi',
 'updated_at' => 'Güncellenme Tarihi',
 'deleted_at' => 'Silinme Tarihi',
 'locked_at' => 'Kilitlenme Tarihi',
 ];

 $normalizedColumns = array_combine(array_values($columns), $columns);

 $paired = $known + $normalizedColumns;

 $output = '/**
 * The labels of table columns
 * Generated via php artisan label:generate '.$this->argument('table').'
 *
 * @var array
 */' . PHP_EOL;

 $output .= 'public static $labels = [' . PHP_EOL;
 foreach ($paired as $key => $value) {
 $output .= "\t" . "'{$key}' => '{$value}'," . PHP_EOL;
 }
 $output .= '];';

 $this->info($output);

 }
}
Daha sonra komut satırında
$ php artisan label:generate users
şeklinde çalıştırdığımda bana şöyle bir çıktı veriyor ve bunu User modeline ekliyorum:
/**
* The labels of table columns
* Generated via php artisan label:generate users
*
* @var array
*/
public static $labels = [
	'id' => 'id',
	'active' => 'Aktif',
	'name' => 'Adı',
	'email' => 'Email',
	'gsm' => 'GSM',
	'password' => 'Şifre',
	'remember_token' => 'remember_token',
	'created_at' => 'Oluşturulma Tarihi',
	'updated_at' => 'Güncellenme Tarihi',
];
FormRequest ile validation yaptığımda ise FormRequest sınıfıma şunu ekliyorum.
public function attributes()
{
 return User::$labels;
}
Bu sadece basit bir iş için kullandığım sistem, üzerine konuşacak çok şey vardır ama anlatmak istediğim bunun gibi siz de kendi yardımcı konsol komutlarınızı yazarak işlerinizi kolaylaştırabilirsiniz. Konsol komutu illa sistemde bir iş yapacak diye bir şart yok.
Ellerine sağlık Mustafa, harika bir iş çıkarmışsın. Birçok farklı kullanım için fikir verebilir.