// 마이그레이션
public function up()
{
Schema::create('posts', function(Blueprint $table)
{
$table -> id()
$table -> unsignedBigInteger('user_id')->nullable();
$table -> string('title');
$table -> text('body');
$table -> timestamps();
//users 테이블과 외래키 설정
$table -> foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade') //유저가 삭제되면 posts의 글도 삭제됨
});
}
// 글 등록시 아이디 auth에서 가져오기
public function store()
{
$post = new Post();
$post -> title = request('title');
$post -> body = request('body');
$post -> user_id = auth() -> id();
$post -> save();
return redirect('/blogs');
}
//포스트 테이블관련 모델
class post extends Model
{
protected $guarded = []; //가디드를 해줘야 DB 컬럼에 접근이 가능 가디드는 모든 허용
// 디비 관계 설정
// 사용자는 포스팅을 쓴다.
// 즉 포스팅은 사용자에 속한다.
// 해당 포스팅을 한 유저를 가져온다
public function user(){
return $this->belongsTo(User::class);
}
}
// 유저 테이블 관련 모델
public function posts(){
//사용자는 포스트를 많이 쓸수 있다
return $this->hasMany(Post::class);
// 유저 클래스가 포스트 클래스를 많이 가지고 있다
}