【问题标题】:ErrorException Illegal offset type - LaravelErrorException 非法偏移类型 - Laravel
【发布时间】:2020-10-21 13:39:13
【问题描述】:

有一个问题,当我完成编辑产品时,我必须重定向到上一个视图才能继续加载产品,但它给了我一个错误:非法偏移类型 - Laravel

功能:

 public function storeProduct(Request $request)
{
    // $request->validate([
    //     'image' => 'mimes:jpeg,jpg,png,gif|max:10000',
    // ]);
    $subcategory = Subcategory::findOrFail($request->get('subcategory_id'));
    // dd($request->all());
    $fields = $request->except('_token', 'subcategory_id');
    // dd($fields);
    
        if ($request->file('image')) { 
            $image = $request->file('image');
            $fileName = $image->getClientOriginalName();
            $image->move(public_path('uploads/img/productos'), $fileName);
            $fields['image'] = "uploads/img/productos/" . $fileName;
        }


    
    $fields['visible'] = 1;

    $product = Product::firstOrCreate($fields);
    $subcategory->products()->attach($product);

    return redirect()->route('admin-products')->with($subcategory);
}

行错误:** return redirect()->route('admin-products')->with($subcategory);**

路线:

Route::post('product/store', [
    'as' => 'admin-product-store',
    'uses' => 'AdminController@storeProduct'
]);

    Route::get('products/{id?}', [
    'as' => 'admin-products',
    'uses' => 'AdminController@products'
]);

【问题讨论】:

  • 试试with('subcategory', $subcategory);
  • 错误“函数 App\Http\Controllers\AdminController::products() 的参数太少,通过了 0,预期正好 1” with('subcategory', $subcategory);
  • 我告诉过这个换行return redirect()->route('admin-products')->with($subcategory);
  • 您将id 传递为array 这就是您收到此错误的原因
  • 在您的路线上将这一行 Route::get('products/{id?} 更改为 Route::get('products/{id}

标签: php laravel


【解决方案1】:

错误是您传递了 NULL 值(第二个参数)。

return redirect()->route('admin-products', ['id' => $subcategory->id])->with('subcategory', $subcategory);

【讨论】:

  • App\Http\Controllers\AdminController::products() 函数的参数太少,通过了 0 个,预期的屏幕正好是 1 个 > i.imgur.com/RJhkGaI.png
【解决方案2】:

你必须像这样使用。在 laravel 文档中遵循这个

// For a route with the following URI: profile/{id}
//return redirect()->route('profile', ['id' => 1]);

我像下面这样使用。所以我的代码中没有发现错误

//Populating Parameters Via Eloquent Models
//return redirect()->route('profile', [$user]);

$id = serialize($subcategory);
return redirect()->route('admin-products', [$id]);

【讨论】:

  • 错误:缺少 [Route: admin-products] [URI: admin/products/{id?}] 所需的参数。
  • @user13523236 更新了我的答案。请检查
  • @user13523236 我更新了我的代码。也许你现在明白了
猜你喜欢
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 2019-05-03
  • 2019-07-16
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多