【问题标题】:My code in laravel can't call back data from data base to update我在 laravel 中的代码无法从数据库回调数据进行更新
【发布时间】:2020-12-29 03:33:40
【问题描述】:

朋友们好 我是 laravel 框架的新手,我正在尝试构建一个 crud 应用程序,所以遇到了这个问题当我在索引页面中单击编辑 btn 时,它调用特定 ID 中的数据来很好地编辑它,它显示“找不到错误 404 页面”我仍然可以'找不到问题所在,请帮忙

产品控制器

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\product;
use Illuminate\Support\Facades\DB;

/*call product by specific id to update  */
 public function edit($id){
     $product = DB::table('products')->where('id',$id)->first();
     return view('product.edit',compact('product'));
 }
/* product update */
 public function update(request $request ,$id){
     $oldlogo = $request->old_logo;
    $data = array();
    $data['product_name'] = $request->product_name;
    $data['product_code'] = $request->product_code;
    $data['product_details'] = $request->product_details;
    $image = $request->file('product_logo');
if ($image){
    unlink($oldlogo);
 $image_name = date('dmy_H_s_i');
 $ext = strtolower($image->getClientOriginalExtension());
 $image_full_name = $image_name.'.'.$ext;
 $upload_path = 'public/media/';
 $image_url = $upload_path.$image_full_name;
 $data['product_logo'] = $image_url;
 $success =$image->move($upload_path,$image_full_name);
 $data['product_logo'] =$image_url;
 $product = DB::table('products')->where('id'.$id) -> update($data);
 }
 return redirect()->route('product.index')
 ->with('success','Product updated successfully');
}

编辑 btn`

<a class="btn btn-primary" href="{{ URL :: to ('edit/product'.$pro->id) }}">Edits</a>

编辑页面

    @extends('product.layout')
@section('content')
    <br><br><br>
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Edit Product</h2>
            </div>
        </div>
        <br><br><br>
        <div class="pull-right">
            <a class="btn btn-success" href="{{ route('product.index') }}">Back</a>
        </div>
        <form action="" method="POST" enctype="multipart/form-data">
            @csrf
            <div class="form-row">
            <div class="col-xs-12 col-xm-12 col-md-12">
                    <div class="form-group">
                        <strong>Product name</strong>
                        <input type="text" name="product_name" calss="form-control" value="{{ $product ->product_name }}">
                    </div>
                </div>

                <div class="col-xs-12 col-xm-12 col-md-12">
                    <div class="form-group">
                        <strong>Product Code</strong>
                        <input type="text" name="product_code" calss="form-control" value="{{ $product ->product_code }}">
                    </div>
                </div>
                <div class="col-xs-12 col-xm-12 col-md-12">
                    <div class="form-group">
                        <strong> Detials </strong>

                        <textarea class="form-control" name="Details" style="height:150px" >
                        {{ $product ->product_details" }}</textarea>
                    </div>
                    <div class="col">
                        <div class="form-group">
                            <strong>Product image</strong>
                            <input type="file" name="logo">
                        </div>
                    </div>
                    <div class="col">
                        <div class="form-group">
                            <strong>Product old image</strong>
                           <img src ="{{ URL::to($product->product_logo) }}" height="70px" width="80px" alt="logo">
                           <input type="hidden" name=" old_logo" value="{{ $product->product_logo }}">
                        </div>
                    </div>
                    <button type="button" class="btn btn-primary">Submit</button>
                </div>
            </div>
        </form>
@endsection

** 编辑路线 **

    Route::get('edit/product/{id}','ProductController@edit');
Route::post('update/product/{id}','ProductController@update');

laravel 模型

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class product extends Model
{
    protected $fillable = [
        'product_name', 'product_details', 'product_code','product_logo'
    ];

}

【问题讨论】:

  • 您在生成的 URL 中缺少斜杠 / ...您正在生成类似:edit/product4 而不是 edit/product/4

标签: php mysql laravel


【解决方案1】:

我认为您的问题就在这里:{{ URL :: to ('edit/product'.$pro-&gt;id) }},因为它将打印例如:/edit.product23。你想要的是/edit/product/23,所以把你的URL改成{{ URL::to('edit/product/'.$pro-&gt;id) }}或者{{ url('edit/product/'.$pro-&gt;id) }}。还要确保在 web.php 路由文件中设置像这样Route::get('/edit/product/{id}, 'ControllerName@edit'); 的路由。

【讨论】:

    猜你喜欢
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2020-01-05
    相关资源
    最近更新 更多