各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

Laravel5.6中的CURD操作(代码示例详解)

管理员 2023-09-05
PHP
117

Laravel5.6中的CURD操作(代码示例详解)

内容导读

收集整理的这篇技术教程文章主要介绍了Laravel5.6中的CURD操作(代码示例详解),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9697字,纯文字阅读大概需要14分钟

内容图文

在本篇文章中,我将给大家分享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

(相关推荐:《怎么通过composer安装Laravel框架?》)

第2步:数据库配置

完成安装后,我们将为laravel 5.6的crud应用程序进行数据库配置,例如数据库名称,用户名,密码等。所以,让我们打开.env文件并填写相关信息,如下:

.env

DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_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表。

<?phpuse IlluminateSupportFacadesSchema;use IlluminateDatabaseSchemaBlueprint;use IlluminateDatabaseMigrationsMigration;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.php

Route::resource('products','ProductController');

第5步:创建ProductController

现在,我们应该创建一个新的控制器ProductController。因此要运行以下命令并创建新的控制器。下面的控制器用于创建resource控制器。

创建ProductController

php 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

<?phpnamespace AppHttpControllers;use AppProduct;use IlluminateHttpRequest;class ProductController extends Controller{    /**     * Display a listing of the resource.     *     * @return IlluminateHttpResponse     */    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 IlluminateHttpResponse     */    public function create()    {        return view('products.create');    }    /**     * Store a newly created resource in storage.     *     * @param  IlluminateHttpRequest  $request     * @return IlluminateHttpResponse     */    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  AppProduct  $product     * @return IlluminateHttpResponse     */    public function show(Product $product)    {        return view('products.show',compact('product'));    }    /**     * Show the form for editing the specified resource.     *     * @param  AppProduct  $product     * @return IlluminateHttpResponse     */    public function edit(Product $product)    {        return view('products.edit',compact('product'));    }    /**     * Update the specified resource in storage.     *     * @param  IlluminateHttpRequest  $request     * @param  AppProduct  $product     * @return IlluminateHttpResponse     */    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  AppProduct  $product     * @return IlluminateHttpResponse     */    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

<?phpnamespace App;use IlluminateDatabaseEloquentModel;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

<!DOCTYPE html><html><head>	<title>Laravel 5.6 CRUD Application</title>	<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet"></head><body><div class="container">    @yield('content')</div></body></html>

resources/views/products/index.blade.php

@extends('products.layout')@section('content')    <div class="row">        <div class="col-lg-12 margin-tb">            <div class="pull-left">                <h2>Laravel 5.6 CRUD Example from scratch</h2>            </div>            <div class="pull-right">                <a class="btn btn-success" href="{{ route('products.create') }}"> Create New Product</a>            </div>        </div>    </div>    @if ($message = Session::get('success'))        <div class="alert alert-success">            <p>{{ $message }}</p>        </div>    @endif    <table class="table table-bordered">        <tr>            <th>No</th>            <th>Name</th>            <th>Details</th>            <th width="280px">Action</th>        </tr>        @foreach ($products as $product)        <tr>            <td>{{ ++$i }}</td>            <td>{{ $product->name }}</td>            <td>{{ $product->detail }}</td>            <td>                <form action="{{ route('products.destroy',$product->id) }}" method="POST">                    <a class="btn btn-info" href="{{ route('products.show',$product->id) }}">Show</a>                    <a class="btn btn-primary" href="{{ route('products.edit',$product->id) }}">Edit</a>                    @csrf                    @method('DELETE')                       <button type="submit" class="btn btn-danger">Delete</button>                </form>            </td>        </tr>        @endforeach    </table>    {!! $products->links() !!}@endsection

resources/views/products/show.blade.php

@extends('products.layout')@section('content')    <div class="row">        <div class="col-lg-12 margin-tb">            <div class="pull-left">                <h2> Show Product</h2>            </div>            <div class="pull-right">                <a class="btn btn-primary" href="{{ route('products.index') }}"> Back</a>            </div>        </div>    </div>    <div class="row">        <div class="col-xs-12 col-sm-12 col-md-12">            <div class="form-group">                <strong>Name:</strong>                {{ $product->name }}            </div>        </div>        <div class="col-xs-12 col-sm-12 col-md-12">            <div class="form-group">                <strong>Details:</strong>                {{ $product->detail }}            </div>        </div>    </div>@endsection

resources/views/products/create.blade.php

@extends('products.layout')@section('content')    <div class="row">        <div class="col-lg-12 margin-tb">            <div class="pull-left">                <h2>Add New Product</h2>            </div>            <div class="pull-right">                <a class="btn btn-primary" href="{{ route('products.index') }}"> Back</a>            </div>        </div>    </div>    @if ($errors->any())        <div class="alert alert-danger">            <strong>Whoops!</strong> There were some problems with your input.<br><br>            <ul>                @foreach ($errors->all() as $error)                    <li>{{ $error }}</li>                @endforeach            </ul>        </div>    @endif    <form action="{{ route('products.store') }}" method="POST">        @csrf         <div class="row">            <div class="col-xs-12 col-sm-12 col-md-12">                <div class="form-group">                    <strong>Name:</strong>                    <input type="text" name="name" class="form-control" placeholder="Name">                </div>            </div>            <div class="col-xs-12 col-sm-12 col-md-12">                <div class="form-group">                    <strong>Detail:</strong>                    <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail"></textarea>                </div>            </div>            <div class="col-xs-12 col-sm-12 col-md-12 text-center">                    <button type="submit" class="btn btn-primary">Submit</button>            </div>        </div>    </form>@endsection

resources/views/products/edit.blade.php

@extends('products.layout')@section('content')    <div class="row">        <div class="col-lg-12 margin-tb">            <div class="pull-left">                <h2>Edit Product</h2>            </div>            <div class="pull-right">                <a class="btn btn-primary" href="{{ route('products.index') }}"> Back</a>            </div>        </div>    </div>    @if ($errors->any())        <div class="alert alert-danger">            <strong>Whoops!</strong> There were some problems with your input.<br><br>            <ul>                @foreach ($errors->all() as $error)                    <li>{{ $error }}</li>                @endforeach            </ul>        </div>    @endif    <form action="{{ route('products.update',$product->id) }}" method="POST">        @csrf        @method('PUT')         <div class="row">            <div class="col-xs-12 col-sm-12 col-md-12">                <div class="form-group">                    <strong>Name:</strong>                    <input type="text" name="name" value="{{ $product->name }}" class="form-control" placeholder="Name">                </div>            </div>            <div class="col-xs-12 col-sm-12 col-md-12">                <div class="form-group">                    <strong>Detail:</strong>                    <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail">{{ $product->detail }}</textarea>                </div>            </div>            <div class="col-xs-12 col-sm-12 col-md-12 text-center">              <button type="submit" class="btn btn-primary">Submit</button>            </div>        </div>    </form>@endsection

现在,我们准备运行我们的crud应用程序的例子,所以运行以下命令快速运行:

php artisan serve

最后你就可以在浏览器上打开下面的网址进行查看测试:

http://localhost:8000/products

本篇文章就是关于Laravel 5.6中的CURD操作即创建,读取,更新和删除操作,希望对需要的朋友有所帮助!

以上就是Laravel 5.6中的CURD操作(代码示例详解)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的Laravel5.6中的CURD操作(代码示例详解)全部内容,希望文章能够帮你解决Laravel5.6中的CURD操作(代码示例详解)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部