라라벨, laravel 로 샘플 만들어 보자. (3) - model, seeder

2 minute read

model 파일 수정

app\SimpleComment.php

<?php
<br></br>
namespace App;
<br></br>
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Hash;
<br></br><br></br>
class SimpleComment extends Model
{
	use SoftDeletes;
	protected $primaryKey ='sc_id'; //없을 경우 id 가 기본값
	protected $dates = ['deleted_at'];
	
	protected $fillable=['sc_name','sc_comment',];
	//-- 자동 암호화
	public function setScPassAttribute($value)
	{
		// $this->attributes['sc_pass'] = \Crypt::encrypt($value); //양방향 암호화
		$this->attributes['sc_pass'] = self::hash($vaule); //해쉬
		
	}
	// public function getScPassAttribute($value)
	// {
	// 	return \Crypt::decrypt($value); //양방향 복호화
	// }
	
	public static function hash($v){
		return Hash::make($v);
	}
	public function checkScPass($v){
		return Hash::check($v, $this->attributes['sc_pass']);
	}
	
	public static function lists(){
		return self::orderBy('sc_id','desc')->get();
	}
}

<br></br>

seeder 생성

$ php artisan make:seeder SimpleCommentSeeder
Seeder created successfully.

database\seeds\SimpleCommentSeeder.php

<?php
<br></br>
use Illuminate\Database\Seeder;
<br></br>
class SimpleCommentSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
      $sc = new App\SimpleComment();
      for($i=0,$m=20;$i<$m;$i++){
        $t = str_repeat(rand(0,9), 4);
        $sc->create([
          // 'sc_id'=>null,
          'sc_name'=>$t,
          'sc_pass'=>$t,
          'sc_comment'=>md5(rand(1,9))." ".md5(rand(1,9)),
        ]);

      }
    }

}

database\seeds\DatabaseSeeder.php

<?php
<br></br>
use Illuminate\Database\Seeder;
<br></br>
class DatabaseSeeder extends Seeder
{
  /**
  * Seed the application's database.
  *
  * @return void
  */
  public function run()
  {
    // $this->call(UsersTableSeeder::class);
    $this->call(SimpleCommentSeeder::class); //<-- 추가
  }
}

  
$ php artisan db:seed
Seeding: SimpleCommentSeeder
Database seeding completed successfully.

SELECT COUNT(*) FROM `simple_comments`;<br></br>=>
count(*)  
----------
        20

<br></br>
SELECT * FROM `simple_comments` ORDER BY sc_id DESC  LIMIT 3;<br></br>=>
 sc_id  sc_name  sc_pass                                                       sc_comment                                                                  created_at           updated_at  deleted_at  remember_token  
------  -------  ------------------------------------------------------------  -----------------------------------------------------------------  -------------------  -------------------  ----------  ----------------
    20  7777     $2y$10$FyKTT.7oaPEAFpgMJyGU5egWz8IBhIrWE/AqfMPkuNMuhOjh2qFM.  eccbc87e4b5ce2fe28308fd9f2a7baf3 c81e728d9d4c2f636f067f89cc14862c  2019-01-09 06:48:20  2019-01-09 06:48:20      (NULL)  (NULL)          
    19  4444     $2y$10$avpMbRS/cBxnxupZR7iIrOU3nz3PTWaESJyeHICCh8ZXy49s/IrHS  c4ca4238a0b923820dcc509a6f75849b 45c48cce2e2d7fbdea1afc51c7c6ad26  2019-01-09 06:48:20  2019-01-09 06:48:20      (NULL)  (NULL)          
    18  7777     $2y$10$cyva/pIVnpKe/Uu6qYM0teo9tuIQ6WEFbHpu9wZXMZ5uB41866tea  8f14e45fceea167a5a36dedd4bea2543 45c48cce2e2d7fbdea1afc51c7c6ad26  2019-01-09 06:48:20  2019-01-09 06:48:20      (NULL)  (NULL)          
                                                                                                                                                                                                                        

$ php artisan make:controller WebSimpleCommentController Controller created successfully.


🔗original-link

Updated: