2016-12-17 2 views
1

Я объявляю вышеуказанное на маршруте для редактирования моих данных.Я не могу передать идентификатор в файле маршрута в laravel

Route::get('editproduct/{id}', '[email protected]_Product'); 

Выше мой editproduct.blade.php страница

<?php 
$id = $_GET['eid']; 
$product_info = DB::select("SELECT * FROM `product` WHERE `pid` = '".$id."'"); 
foreach($product_info as $detail) 
{ 
    $actual_image = 'theme/uploads/'.$detail->pimage; 
    $product_image = $detail->pimage; 
    $product_name = $detail->pname; 
    $product_price = $detail->pprice; 
} 
?> 
@include('include/header') 
<div class="tab-pane add-product-view" id="profile"> 
    <form name="add_product" method="post" enctype="multipart/form-data" role="form" action="{{ url('edit-product-process') }}"> 
    {{ csrf_field() }} 

     <div class="form-label">Add Image: </div> 
     <div class="form-field"><input type="file" name="add_image" id="add_image" value="{{asset($actual_image)}}" /></div> 
     <img src="{{asset($actual_image)}}" width="50" height="50" /> 

     <div class="form-label">Product Name:</div> 
     <div class="form-field"><input type="text" name="product_name" id="product_name" value="{{ $product_name }}" /></div> 

     <div class="form-label">Product Price:</div> 
     <div class="form-field"><input type="text" name="product_price" id="product_price" value="{{ $product_price }}" /></div> 

     <div class="btn btn-primary"><input type="submit" name="submit" value="Add Product"</div> 
    </form> 
</div> 
@include('include/footer') 

Это моя HomeController.blade.php

public function Edit_Product($id){ 
     return View::make('editproduct')->with('id', $id); 
    } 
    public function edit_product_process(Request $request){ 
     $prd_id = $request->pid; 
     $imageTempName = $request->file('add_image')->getPathname(); 
     $imageName = $request->file('add_image')->getClientOriginalName(); 
     $path = base_path() . '/theme/uploads/'; 
     $request->file('add_image')->move($path , $imageName); 
     $remember_token = $request->_token; 
     $date = date('Y-m-d H:i:s'); 
     $pname = $request->product_name; 
     $pprice = $request->product_price; 


     DB::table('product')->where('pid',$prd_id)->update(
     array(
      'pimage' => $imageName, 
      'pname' => $pname, 
      'pprice' => $pprice, 
      'remember_token' => $remember_token, 
      'created_at' => $date, 
      'updated_at' => $date, 
     ) 
     ); 
     return redirect('dashboard'); 
    } 

Я получаю ошибку ниже, пожалуйста, кто может быть в состоянии чтобы помочь мне, я новичок в laravel.

page is not found 
NotFoundHttpException in RouteCollection.php line 161: 

ответ

1

Если вы получаете эту ошибку, когда пытаетесь отправить форму, вам необходимо проверить маршрут. Он должен выглядеть следующим образом:

Route::post('edit-product-process', '[email protected]_product_process'); 

Кроме того, чтобы передать идентификатор в edit_product_process вам нужно добавить поле с идентификатором в виде:

<input type="hidden" name="id" value="{{ $id }}"> 

И тогда вы можете получить его в edit_product_process с $request->id

+1

большое спасибо Алексей Мезенин, он wordked для т е. –

0

Ваш маршрут должен быть как:

Route::get('editproduct/{id}', '[email protected]_Product')->name('product.edit'); 

Затем вы можете использовать его как:

{{ route('product.edit', ['id' => $id]) }} 

Но это страшная практика использования БД запросов в представлениях.

Просьба больше узнать о queries и controllers в документах.

0

Проверьте Ваше имя контроллера Почему г, используя лезвие в that.This плохо practice.HomeController.blade.php

Смежные вопросы