如何在编辑页面中显示所选值和图像以使用laravel执行更新操作

时间:2017-12-06 18:23:00

标签: laravel

您好, 我是Laravel的新学员,也是我在Stackoverflow的第一篇文章,因此我的错误和英语语言对我很熟悉。

我可以创建一个项目shoppingcart&执行CRUD操作,创建产品信息,如产品名称,品牌,描述,价格和产品。图片。我可以创造&轻松阅读操作。在我的产品列表下方,可以在浏览器中显示

enter image description here

当我点击编辑按钮时,浏览器可以显示如下图像以执行编辑操作

enter image description here

品牌名称&图片无法显示编辑产品表单

我的productController代码就像那样

 namespace App\Http\Controllers;

 use Illuminate\Http\Request;
 use App\brand;
 use App\Product;
 use Illuminate\Support\Facades\DB;

class productController extends Controller
 {
  public function index(){



    $product = DB::table('products')
        ->join('brands','products.brandID','=','brands.brandID')
        -> select('products.*','brands.brandName')
        ->get();



    return view('admin.product.productList',compact('product'));
}


   public function create()
   {
    $product = brand::pluck('brandName','brandID');

    return view('admin.product.createProduct',compact('product'));
   }

  public function store(Request $request)
  {

    // image upload

    $product = $request->except('image');

    $image = $request->image;


    if ($image) {
        $imageName = $image->getClientOriginalName();

        $image->move('images', $imageName);

        $product['image'] = $imageName;
    }

    Product::create($product);

    return view('admin.product.productList', compact('product'));
 }

 public function show($id)
 {
    $product = Product::find($id);


    return view('admin.product.editProduct',compact('product'));
}


 public function edit($id)
 {


 }

 public function delete($id){

    $product= Product::find($id);

    $data=$product->delete();




    return view('admin.product.productList',compact('data'));
}
}

我的editProduct.blade文件代码如下

@extends('layouts.master')

@section('content')



   <div class="container" align="center">
        <div class="col-md-6 col-md-offset-3">
       </div>
    </div>



   <div class="container">
      <div class="row">
       <div class="col-md-8 col-md-offset-2">
           <div class="panel panel-default">
                  <div class="panel-heading">Edit Product
               </div>
           <div class="panel-body">
               <form action="edit" class="form-horizontal" method="POST>    


           {{csrf_field()}}

                    <div class="form-group">
                        <label for="name" class="col-md-4 control-label">Product Name :</label>

                        <div class="col-md-6">
                            <input id="name" type="text" class="form-control" value="{!! $product->productName !!}" name="name" required autofocus>

                        </div>
                    </div>

                   <div class="form-group">
                       <label for="name" class="col-md-4 control-label">Brand :</label>

                       <div class="col-md-6">

                           <select name=" " class="form-control" >

                               <option>  
                               </option>

                           </select>

                       </div>
                   </div>

                    <div class="form-group">
                        <label for="description" class="col-md-4 control-label">Description:</label>

                        <div class="col-md-6">
                            <input id="description"  class="form-control" name="description" value="{!! $product->description !!}" required>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="price" class="col-md-4 control-label">Price:</label>

                        <div class="col-md-6">
                            <input id="price" value="{!! $product->price !!}" class="form-control" name="price" required>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="image" class="col-md-4 control-label">Image:</label>

                        <div class="col-md-6">
                            <input id="image" type="file" value="{!! $product->image !!}" class="btn-btn-default" name="image" value="Upload" required>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="col-md-6 col-md-offset-4">
                            <button type="submit" class="btn btn-primary">
                                ADD
                            </button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

@endsection

此处,可以通过HTML选择属性选择品牌名称,并获得另一个品牌Brand&amp;可以使用包含productController索引方法的连接查询从Brand模型中检索数据。

那我怎么能展示品牌名称呢?要在editProduct刀片文件中编辑的图像。请帮助我

1 个答案:

答案 0 :(得分:0)

有几种方法,这里是单向的。

在您的控制器中。

 public function edit($id)
 {
        $product = Product::find($id);

        $data = [
             'product_info' => $product 
        ];

        return view('your.edit.view.here', $data);

 }

在视图内,在FORM标签内,进行循环。

@foreach($product_info as $info)
  // data info here
  <input id="description"  value="{{ $product->description }}" required>
@endforeach

EDIT ::

使用Laravel Encryption,您需要它,尤其是购物车等网络应用。

URL:: http://localhost:8000/product/show/encrypted_id_here
public function show($id) {
   $id = decrypt($id);
}