Thumbnail
Category: Phân Tích Laravel

Phân tích Project Website nghe nhạc làm từ Laravel của Sharecode.vn

Date: April 3, 2020
147 views

1. Thông tin project

MÔ TẢ CHI TIẾT:

  • – Website demo trên framework Laravel (Framework phổ biến nhất hiện nay)
  • – Sử dụng mô hình MVC
  • – Các chức năng chính là : quản lý ca sĩ , nhạc sĩ , bài hát và play nhạc.
  • – Giao diện được làm bằng bootstrap
  • – Các chức năng chỉ là cơ bản để các bạn có thể tìm tòi và phát triển thêm nếu yêu thích.

HÌNH ẢNH DEMO

Website nghe nhạc,framework Laravel,nghe nhạc media,web nhac,Music Online

Website nghe nhạc,framework Laravel,nghe nhạc media,web nhac,Music Online

Website nghe nhạc,framework Laravel,nghe nhạc media,web nhac,Music Online

Website nghe nhạc,framework Laravel,nghe nhạc media,web nhac,Music Online

Website nghe nhạc,framework Laravel,nghe nhạc media,web nhac,Music Online

Nguồn: sharecode.vn

2. Cơ sở dữ liệu

Mình thấy cách làm này không khả quan, không có sự liên kết giữa các bảng, phải lưu thông tin trùng ở khá nhiều bảng. Cơ sở dữ liệu này chưa chuẩn cũng như chưa phù hợp.

3. Những điều tôi học được từ project này

1. as là một cách để đặt tên cho Route. as là tên của route còn prefix mới là url nhé!


Route::get('/',['as'=>'MyRoute',function(){
    return view('index');
}]);

2. Sử dụng paginate mà laravel tạo sẵn để phân trang

Mình đã có hướng dẫn phân trang trong Laravel rồi các bạn xem bài viết nhé.


public function index()
{
  $data = ArtistMod::paginate(10); // Lay het du lieu
  return view('artists.index')->with('v_artist',$data);
}

3. Truyền biến sang view


with('tenBienQuaView', $tenBienController)
  
// nhưng tui thích dùng cách dưới này hơn
with( compact('tenBien1', 'tenBien2') )
//cách này thì tenBien vừa là tên biến qua view vừa là tên biến của controller

4. Sử dụng các hàm tạo sẵn của Eloquent cho model sẽ xử lý nhanh hơn khi CRUD theo id. Nên kết hợp với Resource. Mình đã có chia sẻ về CRUD resource rồi.

  • Khai báo route:


Route::resource('artists','ArtistCtrl');
  • Hiển thị dữ liệu, sử dụng all()


public function index()
{
    $data = ArtistMod::all(); // Lay het du lieu
    return view('artists.insert')->with('v_artist',$data);
}
  • Lưu dữ liệu từ form, sử dụng create()


public function store(Request $request)
{
  // Lay gia tri tu form
  $input = $request->all();
  // Luu tat ca cac input tu form vao database
  ArtistMod::create($input);
  // Hien thi lai Form - Bao thanh cong
  return redirect()->back()->with('insert_task_message','Insert sucessfully');
}
  • Tìm kiếm một dữ liệu theo id, sử dụng findOrFail()


public function show($id)
{
  $data = ArtistMod::findOrFail($id);
  return view('artists.show')->with('v_artist',$data);
}
  • Cập nhật dữ liệu


public function update(Request $request, $id)
{
  $artist = ArtistMod::findOrFail($id);
  $input = $request->all();
  $artist->fill($input)->save();
  return redirect()->back()->with('update_task_message','Update sucessfully');
}
  • Xóa dữ liệu


public function destroy($id)
{
  $data = ArtistMod::findOrFail($id);
  $data->delete();
  return redirect()->back()->with('delete_task_message','Delete sucessfully');
}

Kết Luận

Trên đây là những gì tôi tìm hiểu, nghiên cứu về project âm nhạc này, và tui đã chia sẻ nó trong bài viết. Cảm ơn các bạn đã xem bài viết, có thắc mắc gì cứ để lại bình luận phía dưới nhé!


Copyright © 2025 All Right Reserved