[Seri] - Website đồng hồ - Tạo Model, Request, Route và Controller Thêm, hiển thị keyword

Trước đó mình đã tạo xong csdl cho bảng từ khoá. Tiếp theo mình sẽ tạo model, controller, request để xử lý thêm, hiển thị từ khoá, view thì mình đã tạo từ bài trước đó rồi nhé

Trong video mình đã ghi và giải thích rất rõ chi tết các phần nên trên blog này mình chỉ nhắc lại những kiến thức cũng như những câu lệnh để các bạn đỡ sai sót nhé.

Tạo Model Keyword

php artisan make:model Models/Keyword

Controller Keyword

php artisan make:controller Admin/AdminKeywordController

Request Keyword

php artisan make:request AdminRequestKeyword

Nội dung file request sẽ là

use Illuminate\Foundation\Http\FormRequest;

class AdminRequestKeyword extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'k_name' => 'required|max:190|min:3|unique:keywords,k_name,'.$this->id
        ];
    }

    public function messages()
    {
        return [
            'k_name.required'   => 'Dữ liệu không được để trống',
            'k_name.unique'     => 'Dữ liệu đã tồn tại',
            'k_name.max'        => 'Dữ liệu không quá 190 ký tự',
            'k_name.min'        => 'Dữ liệu phải nhiều hơn 3 ký tự'
        ];
    }
}

View hiển thị 

Phần view thì các bạn xem qua video để thao tác cho nhanh nhé. Nhưng đa phần phần này nó giống như ở phần category từ các view đến cấu trúc hiển thị 

Xử lý thêm và hiển thị 

Nội dung file AdminKeywordController xử lý thêm mới và hiển thị như sau 

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\Http\Requests\AdminRequestKeyword;
use App\Models\Keyword;
use Carbon\Carbon;

class AdminKeywordController extends Controller
{
    public function index()
    {
        $keywords = Keyword::paginate(10);

        $viewData = [
            'keywords' => $keywords
        ];

        return view('admin.keyword.index', $viewData);
    }

    public function create()
    {
        return view('admin.keyword.create');   
    }

    public function store(AdminRequestKeyword $request)
    {
        $data               = $request->except('_token');
        $data['k_slug']     = Str::slug($request->k_name);
        $data['created_at'] = Carbon::now();

        $id = Keyword::insertGetId($data);

        return redirect()->back();
    }
}

Route phần keyword 

Route::group(['prefix' => 'keyword'], function(){
            Route::get('','AdminKeywordController@index')->name('admin.keyword.index');
            Route::get('create','AdminKeywordController@create')->name('admin.keyword.create');
            Route::post('create','AdminKeywordController@store');

            Route::get('update/{id}','AdminKeywordController@edit')->name('admin.keyword.update');
            Route::post('update/{id}','AdminKeywordController@update');
            Route::get('hot/{id}','AdminKeywordController@hot')->name('admin.keyword.hot');
            
            Route::get('delete/{id}','AdminKeywordController@delete')->name('admin.keyword.delete');

        });

VIdeo

Các bạn thêm tiếp phía sao phần route của category nhé.

Để lại comment của bạn nếu gặp khó khăn

Bài viết liên quan