在本篇文章中,我将给大家分享laravel 5.6版本中的基本crud(创建,读取,更新和删除)应用程序模块。你可以按照下面的步骤在laravel 5.6中创建CRUD应用程序。
Laravel是一个流行的开源PHP MVC框架,具有许多高级开发功能。如果你是laravel 5.6应用程序中的学习者或初学者,更多地了解或学习crud应用程序总是有很大帮助的。(相关laravel视频教程:《最新laravel商城实战视频教程》)
下面我将创建insert(插入)、update(更新)、delete(删除)和view(查看)和产品的分页示例。你只需创建新产品,查看产品,编辑产品并从列表中删除产品即可。
第1步:安装Laravel 5.6
可以在终端中运行 create-project 命令来安装 Laravel:composer create-project --prefer-dist laravel/laravel blog
第2步:数据库配置
完成安装后,我们将为laravel 5.6的crud应用程序进行数据库配置,例如数据库名称,用户名,密码等。所以,让我们打开.env文件并填写相关信息,如下:
.envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
第3步:创建产品表和模型
我们将为产品创建crud应用程序。所以我们必须使用Laravel 5.6 php artisan命令创建产品表的迁移(migrations),首先使用以下命令:php artisan make:migration create_products_table --create=products
在执行此命令之后,你可以在路径database/migrations中找到一个文件,并且必须将以下代码放在migrations文件中以用于创建products表。<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->text('detail');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('products');
}
}
第4步:添加resource路由
在这个步骤中,我们需要为产品crud应用添加resource路由。所以打开routes / web.php文件并添加以下路由。
routes/web.phpRoute::resource('products','ProductController');
第5步:创建ProductController
现在,我们应该创建一个新的控制器ProductController。因此要运行以下命令并创建新的控制器。下面的控制器用于创建resource控制器。
创建ProductControllerphp artisan make:controller ProductController --resource --model=Product
在下面的命令之后,你将在这个路径app/Http/Controllers/ProductController.php中找到新的文件。
在这个控制器中,默认情况下将创建7个方法如下所示:
1)index()
2)create()
3)store()
4)show()
5)edit()
6)update()
7)destroy()
因此,让我们复制下面的代码并将其放到ProductController.php文件中。
app/Http/Controllers/ProductController.php<?php
namespace App\Http\Controllers;
use App\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$products = Product::latest()->paginate(5);
return view('products.index',compact('products'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('products.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
request()->validate([
'name' => 'required',
'detail' => 'required',
]);
Product::create($request->all());
return redirect()->route('products.index')
->with('success','Product created successfully.');
}
/**
* Display the specified resource.
*
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function show(Product $product)
{
return view('products.show',compact('product'));
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function edit(Product $product)
{
return view('products.edit',compact('product'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Product $product)
{
request()->validate([
'name' => 'required',
'detail' => 'required',
]);
$product->update($request->all());
return redirect()->route('products.index')
->with('success','Product updated successfully');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function destroy(Product $product)
{
$product->delete();
return redirect()->route('products.index')
->with('success','Product deleted successfully');
}
}
OK,运行下面命令后,你会找到app/Product.php,并将下面的内容放入Product.php文件中:
app/Product.php<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'detail'
];
}
第6步:创建Blade文件
现在我们进入最后一步。在这一步中,我们只需要创建blade文件。所以我们主要需要创建布局文件,然后创建新的文件夹“products”,然后创建crud app的blade文件。最后需要创建以下blade文件:
1) layout.blade.php
2) index.blade.php
3) show.blade.php
4) form.blade.php
5) create.blade.php
6) edit.blade.php
让我们创建下面的文件,并放入下面的代码。
resources/views/products/layout.blade.php
Laravel 5.6 CRUD Application@yield('content')
resources/views/products/index.blade.php@extends('products.layout')
@section('content')
Laravel 5.6 CRUD Example from scratch
Create New Product
@if ($message = Session::get('success'))
{{ $message }}
@endif
No | Name | Details | Action |
---|
@foreach ($products as $product)
{{ ++$i }}{{ $product->name }}{{ $product->detail }}Show
Edit
@csrf
@method('DELETE')
Delete
@endforeach
{!! $products->links() !!}
@endsection
resources/views/products/show.blade.php@extends('products.layout')
@section('content')
Show Product
Back
Name:
{{ $product->name }}
Details:
{{ $product->detail }}
@endsection
resources/views/products/create.blade.php@extends('products.layout')
@section('content')
Add New Product
Back
@if ($errors->any())
Whoops! There were some problems with your input.
@foreach ($errors->all() as $error)
{{ $error }}@endforeach
@endif
@csrf
Name:
Detail:
Submit
@endsection
resources/views/products/edit.blade.php@extends('products.layout')
@section('content')
Edit Product
Back
@if ($errors->any())
Whoops! There were some problems with your input.
@foreach ($errors->all() as $error)
{{ $error }}@endforeach
@endif
@csrf
@method('PUT')
Name:
Detail:
{{ $product->detail }}
Submit
@endsection
现在,我们准备运行我们的crud应用程序的例子,所以运行以下命令快速运行:php artisan serve
最后你就可以在浏览器上打开下面的网址进行查看测试:http://localhost:8000/products
本篇文章就是关于Laravel 5.6中的CURD操作即创建,读取,更新和删除操作,希望对需要的朋友有所帮助!