**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
我有这个错误请帮助:
函数App\Http\Requests\ReservationStoreRequest::Illuminate\Foundation\Providers{闭包}()的参数太少,在第124行的E:\XAMPP\htdocs\resto_app\vendor\laravel\framework\src\Illuminate\Macroable\Traits\Macroable.php中传递了0个参数,而实际上应该是1个参数
<?php
namespace App\Http\Controllers\Admin;
use App\Enums\TableStatus;
use App\Http\Controllers\Controller;
use App\Http\Requests\ReservationStoreRequest;
use App\Models\Reservation;
use App\Models\Table;
use Carbon\Carbon;
use Illuminate\Http\Request;
class ReservationController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$reservations = Reservation::all();
return view('admin.reservations.index', compact('reservations'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
// dd($tables);
$tables = Table::where('status', TableStatus::Available)->get();
return view('admin.reservations.create', compact('tables'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(ReservationStoreRequest $request)
{
$table = Table::findorFail($request->table_id);
if($request->guest_number > $table->guest_number){
return back()->with('warning', 'Please choose the table base on guests.');
}
$request_date = Carbon::parse($request->res_date);
foreach ($table->reservations as $res) {
if ($res->res_date->format('Y-m-d') == $request_date->format('Y-m-d')) {
return back()->with('warning', 'This table base is reserved for this date.');
}
}
Reservation::create($request->validated());
return to_route('admin.reservations.index')->with('success', 'Reservation created successfully');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit(Reservation $reservation)
{
$tables = Table::where('status', TableStatus::Available)->get();
return view('admin.reservations.edit', compact('reservation', 'tables'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(ReservationStoreRequest $request, Reservation $reservation)
{
$table = Table::findorFail($request->table_id);
if($request->guest_number > $table->guest_number){
return back()->with('warning', 'Please choose the table base on guests.');
}
$request_date = Carbon::parse($request->res_date);
$reservations = $table->reservations()->where('id', '!=', $reservation->id)->get();
foreach ($reservations as $res) {
if ($res->res_date->format('Y-m-d') == $request_date->format('Y-m-d')) {
return back()->with('warning', 'This table base is reserved for this date.');
}
}
$reservation->update($request->validate());
return to_route('admin.reservations.index')->with('success', 'Reservation updated successfully');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
这是我的看法
<x-admin-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="flex m-2 p-2">
<a href = "{{ route('admin.tables.index')}}"
class="px-4 py-2 bg-indigo-500 hover:bg-indigo-700 rounded-lg text-white"
style="background-color:blue;">Tables index</a>
</div>
<div class="m-2 p-2 bg-slate-100 rounded" style="background-color:lightblue;">
<div class="space-y-8 divide-y divide-gray-200 w-1/2 mt-10">
<form method="POST" action="{{ route('admin.reservations.update', $reservation->id)}}">
@csrf
@method('PUT')
<div class="sm:col-span-6">
<label for="first_name" class="block text-sm font-medium text-gray-700">First Name</label>
<div class="mt-1">
<input type="text" id="first_name" name="first_name" value="{{ $reservation->first_name }}"
class="block w-full appearance-none bg-white border border-gray-400 rounded-md py-2 px-3 text-base leading-normal transition duration-150 ease-in-out sm:text-sm sm:leading-5" />
</div>
@error('first_name')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="sm:col-span-6">
<label for="last_name" class="block text-sm font-medium text-gray-700">Last Name</label>
<div class="mt-1">
<input type="text" id="last_name" name="last_name" value="{{ $reservation->last_name }}"
class="block w-full appearance-none bg-white border border-gray-400 rounded-md py-2 px-3 text-base leading-normal transition duration-150 ease-in-out sm:text-sm sm:leading-5" />
</div>
@error('last_name')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="sm:col-span-6">
<label for="email" class="block text-sm font-medium text-gray-700">Email</label>
<div class="mt-1">
<input type="email" id="email" name="email" value="{{ $reservation->email }}"
class="block w-full appearance-none bg-white border border-gray-400 rounded-md py-2 px-3 text-base leading-normal transition duration-150 ease-in-out sm:text-sm sm:leading-5" />
</div>
@error('email')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="sm:col-span-6">
<label for="tel_number" class="block text-sm font-medium text-gray-700">Phone Number</label>
<div class="mt-1">
<input type="text" id="tel_number" name="tel_number" value="{{ $reservation->tel_number }}"
class="block w-full appearance-none bg-white border border-gray-400 rounded-md py-2 px-3 text-base leading-normal transition duration-150 ease-in-out sm:text-sm sm:leading-5" />
</div>
@error('tel_number')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="sm:col-span-6">
<label for="res_date" class="block text-sm font-medium text-gray-700">Reservation Date</label>
<div class="mt-1">
<input type="datetime-local" id="res_date" name="res_date"
value="{{ $reservation->res_date->format('Y-m-d\TH:i:s') }}"
class="block w-full appearance-none bg-white border border-gray-400 rounded-md py-2 px-3 text-base leading-normal transition duration-150 ease-in-out sm:text-sm sm:leading-5" />
</div>
@error('res_date')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="sm:col-span-6">
<label for="guest_number" class="block text-sm font-medium text-gray-700"> Guest Number
</label>
<div class="mt-1">
<input type="number" id="guest_number" name="guest_number" value="{{ $reservation->guest_number }}"
class="block w-full appearance-none bg-white border border-gray-400 rounded-md py-2 px-3 text-base leading-normal transition duration-150 ease-in-out sm:text-sm sm:leading-5" />
</div>
@error('guest_number')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="sm:col-span-6 pt-5">
<label for="status" class="block text-sm font-medium text-gray-700">Table</label>
<div class="mt-1">
<select id="table_id" name="table_id" class="form-multiselect block w-full mt-1">
@foreach ($tables as $table)
<option value="{{ $table->id }}"
@selected($table->id == $reservation->table_id)>{{ $table->name }}
({{ $table->guest_number }} Guests)
</option>
@endforeach
</select>
</div>
@error('table_id')
<div class="text-sm text-red-400">{{ $message }}</div>
@enderror
</div>
<div class="mt-6 p-4">
<button type="submit"
class="px-4 py-2 bg-indigo-500 hover:bg-indigo-700 rounded-lg text-white">Update</buttom>
</div>
</form>
</div>
</div>
</div>
</div>
</x-admin-layout>
1条答案
按热度按时间anauzrmj1#
您的错误是在
update
方法中使用了$reservation->update($request->validate())
,但它必须是$reservation->update($request->validated())
(请参见validate
与validated
)