2019.11.02 Upload file trong Laravel 6.0 như thế nào?

(Mình hơi bị chật vật về khoản tìm kiếm dữ liệu để giải quyết vấn đề này, vì kiếm trên mạng thì phần đa đều là những cách cũ dùng cho framework phiên bản trước đó và không còn phù hợp với Framework Laravel 6.0 nữa (vốn tiếng Anh ít ỏi hẳn là 1 thiệt thòi quá lớn =(( )

Hôm nay, mình sẽ minh họa từng bước để mình có thể thêm được file ảnh lên database trong project laravel Student_manager và hiển thị chúng ra view như thế nào nhé (mình chỉ nói tới trường image thôi nha! :D).

Ban đầu mình tạo 1 database(D), 1 project laravel (PL), kết nối D với PL như thường , tạo 1 model Student, 3 cái router : route get và route post nè! tạo luôn migrate nhoa!

Route::get("/", "StudentController@index")->name("student.index")

Route::get("create","StudentController@create")->name("students.create")

Route::post("store","StudentController@store")->name("students.store")

//Mở Terminal lên nè! gõ lệnh nè!chưa quen thì gõ lần lượt thôi nè, boss Luân nói rồi không có gì phải vội 😀

php artisan make:model Student -m

php artisan make:controller StudentController

//xong rồi Enter nè! vui quá nè! 😀

//Vào migrate làm trò trước nha!ở đây mình cho trường này được phép null nha 😀 !

Thêm trường để chứa tên file image nè!

$table->string('image')->nullable;

//mở Terminal chạy migrate nè!

php artisan migrate

Bây giờ, vô StudentController làm trò nè!

public function index()

{

$students= Student::all();

return view("students.list", compact("students"))}

public function create()

{

return view('students.create');

}

Giờ làm view nha! tạo thư mục students/create.blade để quẩy code làm form upload và students/list.blade để hiển thị student list nha! (tạo ở đâu lên module 2 mới nói 😀

View students.create

<form method=''post" action="{{route=("students.store")}}" enctype="multipart/form-data">

@csrf

<div class="input-group">

<div class="custom-file">

<input type="file" name="image" class="custom-file-input">

<label>Select Your Profile Image</label>

</input>

</div>

</div>

<button type="submit" class="btn btn-primary">submit</button>

</form>

View students.list

@foreach($students as $student)

<img src="{{asset("storage/".$student->image)}}"></img>

@endforeach

//mở Terminal chạy lệnh này nha!

php artisan storage:links

Sau đó, mình quay trở lại StudentController tiếp tục làm trò 😀 .

public function store(Request $request)

{

$student=new Student; if(!$request->hasFile("image")){

$student->image = $request->image;

}else{

$image= $request->file("image");

$path = $image->store("images", "public");

$student->image = $path;

}

$student->save();

return redirect() -> route("students.index", compact("student"));

}

Ô cê xong rồi chạy test thui nè! 😀

php artisan serve

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook