Laravel 學習筆記 — CRUD (1)

ViNciHsu
4 min readOct 13, 2020

--

Model : Book

  • title
  • description
  • price → decimal
  • available → boolean (表示這本書有無要上架)

php artisan migrate後,打開DB Browser看SQLite是否新增books資料表

接著在終端機打php artisan tinker 透過互動直接來看資料,而不需要建一個view來看資料的呈現

像下方的Book::count() 等同於 Select count(*) from books; 這就是ORM的好處,在透過操作類別或操作物件的過程中,其背後會翻譯成SQL語法,就不需要自己寫SQL,但這並不代表學習SQL不重要。

因為目前還沒有資料,所以是0

試著透過 tinker 新增資料:

$b = new Book

$b->title = “為你自己學Laravel”

$b->description = “很厲害”

$b->price = 100

$b (看目前新增那些資料)

$b->save();

最後有save(); 才有存進資料庫

另一種新增寫法:

為了防止被大量塞進可能有疑慮的資料,所以laravel禁止以下寫法 Book::create($data)

如果想要大量寫入,就必須到Model(此處是app/Models/Book.php)加上可以開放大量寫入的欄位名稱,如下:

重新執行 php artisan tinker ,再次輸入 $data = [“title” => “為你自己學 Ruby on Rails”,”description” => “也很厲害”, “price” => 200];

大量新增語法 Book::create($data) 就能看到資料新增進去了

protected $fillable = [ //在此加上可以開放大量寫入欄位的欄位名稱
'title',
'description',
'price',
'available'
];

$fillable 有點像是寫入白名單,透過開放欄位,來確保大批寫入時的資訊安全

接下來在tinker內查詢時,就能看到資料有兩筆了

Book::count()

Book::all()

--

--

No responses yet