如何解决"Undefined variable $fields error !"问题?



由于我目前正在做一个家庭服务项目,也是Laravel的新成员,我面临着一个未定义的变量错误。我在AppHttpLivewireAdminAdminAddServiceCategoryComponent文件夹中创建了AdminAddServiceCategoryComponent.php,在resourcesviewslivewireadminadmin-add-service-category-component.blade.php文件夹中创建admin-add-service-category-component.blade.php

AdminAddServiceCategoryComponent.php:

<?php

namespace AppHttpLivewireAdmin;

use AppModelsServiceCategory;
use CarbonCarbon;
use LivewireComponent;
use IlluminateSupportStr;
use LivewireWithFileUploads;

class AdminAddServiceCategoryComponent extends Component
{
use WithFileUploads;
public $name;
public $slug;
public $image;

public function generateSlug()
{
$this->slug = Str::slug($this->name,'-');
}
public function updated($fields)
{
$this->validateOnly($fields,[
'name' => 'required',
'slug' => 'required',
'image' => 'required|mimes:jpeg,png'
]);
}
public function createNewCategory()
{
$this->validate($fields,[
'name' => 'required',
'slug' => 'required',
'image' => 'required|mimes:jpeg,png'
]);
$scategory = new ServiceCategory();
$scategory->name= $this->name;
$scategory->slug= $this->slug;
$imageName=Crabon::now()->timestamp. '.' . $this->image->extension();
$this->image->storeAs('categories',$imageName);
$scategory->image=$imageName;
$imageName->save();
session()->flash('message','Category has been created successfully!');
}
public function render()
{
return view('livewire.admin.admin-add-service-category-component')->layout('layouts.base');
}
}

admin添加服务类别组件blade.php:

<div>
<div class="section-title-01 honmob">
<div class="bg_parallax image_02_parallax"></div>
<div class="opacy_bg_02">
<div class="container">
<h1>Add Service Category</h1>
<div class="crumbs">
<ul>
<li><a href="/">Home</a></li>
<li>/</li>
<li>Add Service Category</li>
</ul>
</div>
</div>
</div>
</div>
<section class="content-central">
<div class="content_info">
<div class="paddings-mini">
<div class="container">
<div class="row portfolioContainer">
<div class="col-md-8 col-md-offset-2 profile1">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-md-6">
Add New Service Category
</div>
<div class="col-md-6">
<a href="{{route('admin.service_categories')}}" class="btn btn-info pull-right">All categories</a>
</div>
</div>
</div>
<div class="panel-body">
@if(Session::has('message'))
<div class="alert alert-success" role="alert">{{Session::get('message')}}</div>
@endif
<form class="form-horizontal" wire:submit.prevent="createNewCategory">
@csrf
<div class="form-group">
<label for="name" class="col-label col-sm-3">Category Name:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="name" wire:model="name" wire:keyup="generateSlug">
@error('name') <p class="text-danger">{{$message}}</p> @enderror
</div>
</div>
<div class="form-group">
<label for="slug" class="col-label col-sm-3">Category Slug:</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="slug" wire:model="slug">
@error('slug') <p class="text-danger">{{$message}}</p> @enderror
</div>
</div>
<div class="form-group">
<label for="image" class="col-label col-sm-3">Category Image:</label>
<div class="col-sm-9">
<input type="file" class="form-control-file" name="image" wire:model="image">
@error('image') <p class="text-danger">{{$message}}</p> @enderror
@if($image)
<img src="{{$image->temporaryUrl()}}" width="60">
@endif
</div>
</div>
<button type="submit" class="btn btn-success pull-right">Add Category</button>
</form>
</div>
</div>
</div>
</div>
</div>  
</div>   
</div>      
</section>    
</div>

提交以下表格后:表单提交

这些错误如下所示:error_screenshot1

error_screenshot2

我该如何解决此问题!提前谢谢。

您尚未在createNewCategory((中添加$fields试试这个

public function createNewCategory($fields)
{
$this->validate($fields,[
'name' => 'required',
'slug' => 'required',
'image' => 'required|mimes:jpeg,png'
]);
$scategory = new ServiceCategory();
......

相关内容

最新更新