반응형
이번엔 만들어진 모델을 한번 열어보자. 어디에 생겼는지는 저번 시간에 얘기했다.
app/Models/Qna.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* @property int $num
* @property string $contents
* @property string $email
* @property string $username
* @property DateTime $regdate
* @property boolean $status
*/
class Qna extends Model
{
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'qna';
/**
* The primary key for the model.
*
* @var string
*/
protected $primaryKey = 'num';
/**
* Attributes that should be mass-assignable.
*
* @var array
*/
protected $fillable = [
'contents', 'email', 'regdate', 'status', 'username'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'num' => 'int', 'contents' => 'string', 'email' => 'string', 'regdate' => 'datetime', 'status' => 'boolean', 'username' => 'string'
];
/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = [
'regdate'
];
/**
* Indicates if the model should be timestamped.
*
* @var boolean
*/
public $timestamps = false;
// Scopes...
// Functions ...
// Relations ...
}
기존에 만들어지는 모델과는 조금 다른 모양이다.
이번엔 해당 모델을 사용하는 컨트롤러를 만들어보자. 이것도 명령어를 이용하면 되지만 명령어로 만들어봤자 세부사항까지는 어차피 직접 입력해주어야 한다.
app/Http/Controllers/QnaController.php
<?php
namespace App\Http\Controllers;
use App\Models\Qna;
use Illuminate\Http\Request;
class QnaController extends Controller
{
private $Qna;
public function __construct(Qna $Qna){
$this->Qna = $Qna;
}
public function index(){
$Qnas = $this->Qna->latest('regdate')->paginate(10);
return view('qna.index', compact('Qnas')); //
}
}
모양은 각자 다를 수 있다. 컨트롤러의 파일명과 모델을 인클루드 한것등을 확인해보자.
<?php
namespace App\Http\Controllers;
use App\Models\Qna;
use Illuminate\Http\Request;
class QnaController extends Controller
{
public function index(){
//Qna::orderBy('regdate', 'desc')->get();
$Qnas = Qna::latest('regdate')->paginate(10);
return view('qna.index', compact('Qnas'));
}
}
이렇게 할 수도 있다.
$Qnas = Qna::latest('regdate')->paginate(10);
이렇게 정렬하려고 하는 컬럼을 지정하지 않으면 자동으로 created_at 컬럼을 찾기 때문에 "Column not found: 1054 Unknown column 'created_at' in 'order clause'" 이런 해당 컬럼이 없다는 에러가 난다. 꼭 수정해야한다.
반응형
'PHP' 카테고리의 다른 글
[라라벨]두 개 이상의 order by , ifnull 같은 함수 사용할 때 사용하는 orderByRaw (0) | 2024.06.05 |
---|---|
[라라벨]기존 회원 테이블을 사용해 로그인 처리하기 (0) | 2024.05.31 |
[라라벨]기존 테이블을 라라벨 모델로 등록하기 #1 (0) | 2024.05.23 |
[PHP]Jenkins(젠킨스)없이 github(깃허브)만으로 서버에 배포하기 #4 (0) | 2024.05.21 |
[PHP]Jenkins(젠킨스)없이 github(깃허브)만으로 서버에 배포하기 #3 (0) | 2024.05.21 |