مرحله اول: نصب لاراول

برای ایجاد سریع یک CRUD ساده در Laravel 8 اول از همه ما باید یکبار Laravel را با استفاده از دستور زیر دریافت کنیم، برای این منظور ترمینال خط فرمان خود را باز کنید و دستور زیر را اجرا کنید:

[pastacode lang=”php” manual=”composer%20create-project%20–prefer-dist%20laravel%2Flaravel%20blog” message=”” highlight=”” provider=”manual”/]

مرحله دوم: تنظیمات پایگاه داده

در این مرحله، ما اطلاعات اتصال به پایگاه داده را که شامل نام پایگاه داده، نام کاربری و رمز عبور است را برای laravel 8 تنظیم می کنیم، برای این منظور فایل .env را باز کرده و جزئیات لازم را به صورت زیر پر می کنیم:

[pastacode lang=”php” manual=”DB_CONNECTION%3Dmysql%0ADB_HOST%3D127.0.0.1%0ADB_PORT%3D3306%0ADB_DATABASE%3Dhere%20your%20database%20name(blog)%0ADB_USERNAME%3Dhere%20database%20username(root)%0ADB_PASSWORD%3Dhere%20database%20password(root)” message=”.env” highlight=”” provider=”manual”/]

مرحله سوم: ساخت Migration

در لاراول برای ساخت استراکچر پایگاه داده از Migration بهرمند خواهیم شد، برای این منظور از خط فرمان زیر استفاده می کنیم.

[pastacode lang=”php” manual=”php%20artisan%20make%3Amigration%20create_products_table%20–create%3Dproducts%0A%0A” message=”” highlight=”” provider=”manual”/]

بعد از اجرای خط فرمان بالا یک فایل در مسیر database/migrations ایجاد می گردد آن را بصورت زیر تغییر دهید، تا استراکچر جدول products در پایگاه داده شما ایجاد گردد:

[pastacode lang=”php” manual=”%3C%3Fphp%0A%20%20%0Ause%20Illuminate%5CDatabase%5CMigrations%5CMigration%3B%0Ause%20Illuminate%5CDatabase%5CSchema%5CBlueprint%3B%0Ause%20Illuminate%5CSupport%5CFacades%5CSchema%3B%0A%20%20%0Aclass%20CreateProductsTable%20extends%20Migration%0A%7B%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Run%20the%20migrations.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40return%20void%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20up()%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20Schema%3A%3Acreate(‘products’%2C%20function%20(Blueprint%20%24table)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24table-%3Eid()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24table-%3Estring(‘name’)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24table-%3Etext(‘detail’)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24table-%3Etimestamps()%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Reverse%20the%20migrations.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40return%20void%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20down()%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20Schema%3A%3AdropIfExists(‘products’)%3B%0A%20%20%20%20%7D%0A%7D” message=”” highlight=”” provider=”manual”/]

حال با اجرای خط فرمان زیر جدول پایگاه داده ایجاد خواهد شد.

[pastacode lang=”php” manual=”php%20artisan%20migrate” message=”” highlight=”” provider=”manual”/]

مرحله چهارم: افزودن Route

برای ایجاد روت ها به مسیر زیر رفته و کد زیر را قرار می دهیم.

[pastacode lang=”php” manual=”use%20App%5CHttp%5CControllers%5CProductController%3B%0A%20%20%0ARoute%3A%3Aresource(‘products’%2C%20ProductController%3A%3Aclass)%3B” message=”routes/web.php” highlight=”” provider=”manual”/]

مرحله پنجم: تعریف Controller و Model

کنون در این مرحله باید یک کنترلر جدیدی تحت عنوان ProductController ایجاد کنیم، بنابراین دستور زیر را اجرا می کنیم تا یک کنترلر و مدل جدید ایجاد کنیم.

[pastacode lang=”php” manual=”php%20artisan%20make%3Acontroller%20ProductController%20–resource%20–model%3DProduct” message=”” highlight=”” provider=”manual”/]

پس از اجرای دستور زیر، پرونده جدیدی در این مسیر “app/Http/Controllers/ProductController.php” ایجاد خواهد شد، در این Controller به طور پیش فرض هفت methods بصورت پیش فرض وجود دارند که عبارتند از:

[pastacode lang=”php” manual=”index()%0Acreate()%0Astore()%0Ashow()%0Aedit()%0Aupdate()%0Adestroy()” message=”” highlight=”” provider=”manual”/]

همانطور که اشاره شد متد های این کنترلر بصورت پیش فرض خالی هستند برای سرعت آموزش محنوای نهایی فایل ProductController.php به صورت زیر تغییر دهید:

[pastacode lang=”php” manual=”%3C%3Fphp%0A%20%20%0Anamespace%20App%5CHttp%5CControllers%3B%0A%20%20%20%0Ause%20App%5CModels%5CProduct%3B%0Ause%20Illuminate%5CHttp%5CRequest%3B%0A%20%20%0Aclass%20ProductController%20extends%20Controller%0A%7B%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Display%20a%20listing%20of%20the%20resource.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20index()%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%24products%20%3D%20Product%3A%3Alatest()-%3Epaginate(5)%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20return%20view(‘products.index’%2Ccompact(‘products’))%0A%20%20%20%20%20%20%20%20%20%20%20%20-%3Ewith(‘i’%2C%20(request()-%3Einput(‘page’%2C%201)%20-%201)%20*%205)%3B%0A%20%20%20%20%7D%0A%20%20%20%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Show%20the%20form%20for%20creating%20a%20new%20resource.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20create()%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%20view(‘products.create’)%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Store%20a%20newly%20created%20resource%20in%20storage.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40param%20%20%5CIlluminate%5CHttp%5CRequest%20%20%24request%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20store(Request%20%24request)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%24request-%3Evalidate(%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20’required’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20’detail’%20%3D%3E%20’required’%2C%0A%20%20%20%20%20%20%20%20%5D)%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20Product%3A%3Acreate(%24request-%3Eall())%3B%0A%20%20%20%20%20%0A%20%20%20%20%20%20%20%20return%20redirect()-%3Eroute(‘products.index’)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%3Ewith(‘success’%2C’Product%20created%20successfully.’)%3B%0A%20%20%20%20%7D%0A%20%20%20%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Display%20the%20specified%20resource.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40param%20%20%5CApp%5CProduct%20%20%24product%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20show(Product%20%24product)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%20view(‘products.show’%2Ccompact(‘product’))%3B%0A%20%20%20%20%7D%20%0A%20%20%20%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Show%20the%20form%20for%20editing%20the%20specified%20resource.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40param%20%20%5CApp%5CProduct%20%20%24product%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20edit(Product%20%24product)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%20view(‘products.edit’%2Ccompact(‘product’))%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Update%20the%20specified%20resource%20in%20storage.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40param%20%20%5CIlluminate%5CHttp%5CRequest%20%20%24request%0A%20%20%20%20%20*%20%40param%20%20%5CApp%5CProduct%20%20%24product%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20update(Request%20%24request%2C%20Product%20%24product)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%24request-%3Evalidate(%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20’required’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20’detail’%20%3D%3E%20’required’%2C%0A%20%20%20%20%20%20%20%20%5D)%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%24product-%3Eupdate(%24request-%3Eall())%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20return%20redirect()-%3Eroute(‘products.index’)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%3Ewith(‘success’%2C’Product%20updated%20successfully’)%3B%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Remove%20the%20specified%20resource%20from%20storage.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40param%20%20%5CApp%5CProduct%20%20%24product%0A%20%20%20%20%20*%20%40return%20%5CIlluminate%5CHttp%5CResponse%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20destroy(Product%20%24product)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%24product-%3Edelete()%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20return%20redirect()-%3Eroute(‘products.index’)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%3Ewith(‘success’%2C’Product%20deleted%20successfully’)%3B%0A%20%20%20%20%7D%0A%7D” message=”app/Http/Controllers/ProductController.php” highlight=”” provider=”manual”/]

بسیار خوب، بعد از تغییرات بالا به مسیر “app/Models/Product.php” مراجعه کرده و محتوای فایل Product.php بصورت زیر تغییر دهید:

[pastacode lang=”php” manual=”%3C%3Fphp%0A%20%20%0Anamespace%20App%5CModels%3B%0A%20%20%0Ause%20Illuminate%5CDatabase%5CEloquent%5CFactories%5CHasFactory%3B%0Ause%20Illuminate%5CDatabase%5CEloquent%5CModel%3B%0A%20%20%0Aclass%20Product%20extends%20Model%0A%7B%0A%20%20%20%20use%20HasFactory%3B%0A%20%20%0A%20%20%20%20protected%20%24fillable%20%3D%20%5B%0A%20%20%20%20%20%20%20%20’name’%2C%20’detail’%0A%20%20%20%20%5D%3B%0A%7D” message=”app/Models/Product.php” highlight=”” provider=”manual”/]

مرحله ششم: افزودن Blade فایل ها برای View

در آخرین مرحله باید فایلهای blade را در View ایجاد کنیم. این فایل ها عمدتا فایل های HTML و استراکچر طرح بوده و متغییر ها در آن جا نمایی خواهد شد، برای طبقه بندی بهتر این فایل ها را در فولدی به نام products در مسیر resources/views ایجاد خواهیم کرد این فایل ها به شرح زیر می باشند:

[pastacode lang=”php” manual=”layout.blade.php%0Aindex.blade.php%0Acreate.blade.php%0Aedit.blade.php%0Ashow.blade.php” message=”” highlight=”” provider=”manual”/]

بنابراین تک تک این فایل ها را بصورت زیر ایجاد می کنیم:

[pastacode lang=”php” manual=”%3C!DOCTYPE%20html%3E%0A%3Chtml%3E%0A%3Chead%3E%0A%20%20%20%20%3Ctitle%3ELaravel%208%20CRUD%20Application%20-%20uclass.ir%3C%2Ftitle%3E%0A%20%20%20%20%3Clink%20href%3D%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Ftwitter-bootstrap%2F4.0.0-alpha%2Fcss%2Fbootstrap.css%22%20rel%3D%22stylesheet%22%3E%0A%3C%2Fhead%3E%0A%3Cbody%3E%0A%20%20%0A%3Cdiv%20class%3D%22container%22%3E%0A%20%20%20%20%40yield(‘content’)%0A%3C%2Fdiv%3E%0A%20%20%20%0A%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/products/layout.blade.php” highlight=”” provider=”manual”/]

[pastacode lang=”php” manual=”%40extends(‘products.layout’)%0A%20%0A%40section(‘content’)%0A%20%20%20%20%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-lg-12%20margin-tb%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-left%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3ELaravel%208%20CRUD%20Example%20from%20scratch%20-%20uclass.ir%3C%2Fh2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-right%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20class%3D%22btn%20btn-success%22%20href%3D%22%7B%7B%20route(‘products.create’)%20%7D%7D%22%3E%20Create%20New%20Product%3C%2Fa%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%0A%20%20%20%20%40if%20(%24message%20%3D%20Session%3A%3Aget(‘success’))%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22alert%20alert-success%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%3E%7B%7B%20%24message%20%7D%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%40endif%0A%20%20%20%0A%20%20%20%20%3Ctable%20class%3D%22table%20table-bordered%22%3E%0A%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3ENo%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3EName%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%3EDetails%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cth%20width%3D%22280px%22%3EAction%3C%2Fth%3E%0A%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%40foreach%20(%24products%20as%20%24product)%0A%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%2B%2B%24i%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24product-%3Ename%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24product-%3Edetail%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cform%20action%3D%22%7B%7B%20route(‘products.destroy’%2C%24product-%3Eid)%20%7D%7D%22%20method%3D%22POST%22%3E%0A%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20class%3D%22btn%20btn-info%22%20href%3D%22%7B%7B%20route(‘products.show’%2C%24product-%3Eid)%20%7D%7D%22%3EShow%3C%2Fa%3E%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20class%3D%22btn%20btn-primary%22%20href%3D%22%7B%7B%20route(‘products.edit’%2C%24product-%3Eid)%20%7D%7D%22%3EEdit%3C%2Fa%3E%0A%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%40csrf%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%40method(‘DELETE’)%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22submit%22%20class%3D%22btn%20btn-danger%22%3EDelete%3C%2Fbutton%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fform%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%40endforeach%0A%20%20%20%20%3C%2Ftable%3E%0A%20%20%0A%20%20%20%20%7B!!%20%24products-%3Elinks()%20!!%7D%0A%20%20%20%20%20%20%0A%40endsection” message=”resources/views/products/index.blade.php” highlight=”” provider=”manual”/]

[pastacode lang=”php” manual=”%40extends(‘products.layout’)%0A%20%20%0A%40section(‘content’)%0A%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%3Cdiv%20class%3D%22col-lg-12%20margin-tb%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-left%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3EAdd%20New%20Product%3C%2Fh2%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-right%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20class%3D%22btn%20btn-primary%22%20href%3D%22%7B%7B%20route(‘products.index’)%20%7D%7D%22%3E%20Back%3C%2Fa%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%20%20%20%0A%40if%20(%24errors-%3Eany())%0A%20%20%20%20%3Cdiv%20class%3D%22alert%20alert-danger%22%3E%0A%20%20%20%20%20%20%20%20%3Cstrong%3EWhoops!%3C%2Fstrong%3E%20There%20were%20some%20problems%20with%20your%20input.%3Cbr%3E%3Cbr%3E%0A%20%20%20%20%20%20%20%20%3Cul%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%40foreach%20(%24errors-%3Eall()%20as%20%24error)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%7B%7B%20%24error%20%7D%7D%3C%2Fli%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%40endforeach%0A%20%20%20%20%20%20%20%20%3C%2Ful%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%40endif%0A%20%20%20%0A%3Cform%20action%3D%22%7B%7B%20route(‘products.store’)%20%7D%7D%22%20method%3D%22POST%22%3E%0A%20%20%20%20%40csrf%0A%20%20%0A%20%20%20%20%20%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EName%3A%3C%2Fstrong%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22text%22%20name%3D%22name%22%20class%3D%22form-control%22%20placeholder%3D%22Name%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EDetail%3A%3C%2Fstrong%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctextarea%20class%3D%22form-control%22%20style%3D%22height%3A150px%22%20name%3D%22detail%22%20placeholder%3D%22Detail%22%3E%3C%2Ftextarea%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%20text-center%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22submit%22%20class%3D%22btn%20btn-primary%22%3ESubmit%3C%2Fbutton%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%0A%3C%2Fform%3E%0A%40endsection” message=”resources/views/products/create.blade.php” highlight=”” provider=”manual”/]

[pastacode lang=”php” manual=”%40extends(‘products.layout’)%0A%20%20%20%0A%40section(‘content’)%0A%20%20%20%20%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-lg-12%20margin-tb%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-left%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3EEdit%20Product%3C%2Fh2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-right%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20class%3D%22btn%20btn-primary%22%20href%3D%22%7B%7B%20route(‘products.index’)%20%7D%7D%22%3E%20Back%3C%2Fa%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%0A%20%20%20%20%40if%20(%24errors-%3Eany())%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22alert%20alert-danger%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EWhoops!%3C%2Fstrong%3E%20There%20were%20some%20problems%20with%20your%20input.%3Cbr%3E%3Cbr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%40foreach%20(%24errors-%3Eall()%20as%20%24error)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%7B%7B%20%24error%20%7D%7D%3C%2Fli%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%40endforeach%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ful%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%40endif%0A%20%20%0A%20%20%20%20%3Cform%20action%3D%22%7B%7B%20route(‘products.update’%2C%24product-%3Eid)%20%7D%7D%22%20method%3D%22POST%22%3E%0A%20%20%20%20%20%20%20%20%40csrf%0A%20%20%20%20%20%20%20%20%40method(‘PUT’)%0A%20%20%20%0A%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EName%3A%3C%2Fstrong%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22text%22%20name%3D%22name%22%20value%3D%22%7B%7B%20%24product-%3Ename%20%7D%7D%22%20class%3D%22form-control%22%20placeholder%3D%22Name%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EDetail%3A%3C%2Fstrong%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctextarea%20class%3D%22form-control%22%20style%3D%22height%3A150px%22%20name%3D%22detail%22%20placeholder%3D%22Detail%22%3E%7B%7B%20%24product-%3Edetail%20%7D%7D%3C%2Ftextarea%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%20text-center%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22submit%22%20class%3D%22btn%20btn-primary%22%3ESubmit%3C%2Fbutton%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%0A%20%20%20%20%3C%2Fform%3E%0A%40endsection” message=”resources/views/products/edit.blade.php” highlight=”” provider=”manual”/]

[pastacode lang=”php” manual=”%40extends(‘products.layout’)%0A%20%20%0A%40section(‘content’)%0A%20%20%20%20%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-lg-12%20margin-tb%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-left%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch2%3E%20Show%20Product%3C%2Fh2%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22pull-right%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20class%3D%22btn%20btn-primary%22%20href%3D%22%7B%7B%20route(‘products.index’)%20%7D%7D%22%3E%20Back%3C%2Fa%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%0A%20%20%20%20%3Cdiv%20class%3D%22row%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EName%3A%3C%2Fstrong%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%7B%20%24product-%3Ename%20%7D%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22col-xs-12%20col-sm-12%20col-md-12%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22form-group%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cstrong%3EDetails%3A%3C%2Fstrong%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%7B%20%24product-%3Edetail%20%7D%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%40endsection” message=”resources/views/products/show.blade.php” highlight=”” provider=”manual”/]

اکنون ما آماده اجرای نمونه برنامه CRUD خود با laravel 8 هستیم ، بنابراین برای اجرای سریع دستور زیر را اجرا کنید:

[pastacode lang=”php” manual=”php%20artisan%20serve” message=”” highlight=”” provider=”manual”/]

اکنون می توانید URL زیر را در مرورگر خود باز کنید:

[pastacode lang=”php” manual=”http%3A%2F%2Flocalhost%3A8000%2Fproducts” message=”” highlight=”” provider=”manual”/]

علاقه ام از سالها قبل برنامه نویسی تحت وب بوده و هست ، همیشه سعی می کنم علاقه مندی های خودم رو در ضمیه برنامه نویسی با همه به اشتراک بذارم، مطالب اینجا بتونه مشکل یه نفر رو هم برطرف کنه اون حس خوب رضایت رو در من بوجود میاره ;)

3 نظر برای ساخت سریع یک CRUD ساده در Laravel 8 ارسال شده است.

  1. Pejman mohammadi

    سلام ، من توی این بحث Form از Crud به مشکل خوردم .

    4 تا عکس از کد و اجرا میفرستم .

    :: کد های Create.blade.php

    http://s15.picofile.com/file/8409172650/1.JPG

    :: کد های :: PostsConteroller

    http://s14.picofile.com/file/8409172676/2.JPG

    :: کد های :: Web.php

    http://s14.picofile.com/file/8409172692/3.JPG

    ::کد اجرایی صفحه cms.test/posts/create

    http://s15.picofile.com/file/8409172718/4.JPG

    ——————————————————————————–

    لطفا جواب رو یه خورده سریع تر از حالت عادی بفرستید .

    شفاف و کامل باشه که بتونم متوجه بشم .

    • admin

      ضمن تشکر از ارسال نظر شما
      دوست عزیز این آموزش با Laravel 8 آماده و بررسی شده، لطفا یکبار crud مورد نظر خودتون رو مرحله به مرحله مطابق با آموزش ما پیش ببرید.
      در اسکرین شاتهایی که ارسال کردین این موارد رعایت نشده
      – اکشن فرم شما در فایل Create.blade.php به اشتباه تنظیم شده است.
      – با توجه به خطایی که دارید این احتمال وجود داره که در پایگاه داده شما فیلد id در حالت AUTO_INCREMENT تنظیم نشده است.

  2. مصطفی

    گام به گام انجام دادم در لاراول 8 اجرا شد و بسیار لذت بردم

ارسال نظر