🔥جمعه سیاه در راکت با (( ۷۰ درصد )) تخفیف! این فرصت دیگه تکرار نمیشه
مشاهده دورههابا سلام.دوستان میشه بگین با توجه به کدها کجای کار اشتباه کردم که عملیات delete , update روی کدها اعمال نمیشه..اولین باره به این مشکل برمیخورم....
<?php
namespace App\Http\Controllers\Admin;
use App\Drog;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class DrugController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$drugs = Drog::query();
if ($keyword = request('search')) {
$drugs->where('title', 'LIKE', "%{$keyword}%")->orWhere('id', "%{$keyword}%");
}
$drugs = $drugs->latest()->paginate(15);
return view('admin.drugs.alldrug',compact('drugs'));
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
return view('admin.drugs.create');
}
/**
* Store a newly created resource in storage.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$validateData = $request->validate([
'title'=>['required','string'],
'description'=>['required','string'],
]);
auth()->user()->drug()->create($validateData);
return redirect(route('admin.drugs.index'));
}
/**
* Show the form for editing the specified resource.
*
* @param Drog $drog
* @return void
*/
public function edit(Drog $drog)
{
return view('admin.drugs.edit',compact('drog'));
}
/**
* Update the specified resource in storage.
*
* @param Request $request
* @param Drog $drog
* @return void
*/
public function update(Request $request, Drog $drog)
{
$validateData = $request->validate([
'title'=>['required','string'],
'description'=>['required','string'],
]);
$drog->update($validateData);
return redirect(route('admin.drugs.index'));
}
/**
* Remove the specified resource from storage.
*
* @param Drog $drog
* @return Response
* @throws \Exception
*/
public function destroy(Drog $drog)
{
$drog->delete();
return back();
}
}
کدهای Route
<?php
use Illuminate\Support\Facades\Route;
Route::namespace('Admin')->group(function (){
Route::get('/','PanelController@index');
Route::resource('users','UserController');
Route::resource('drugs','DrugController')->except(['show']);
});
view :
@component('admin.layouts.content',['title'=>'داروها'])
@slot('breadcrumb')
<li class="breadcrumb-item"><a href="/admin">میز کار</a></li>
<li class="breadcrumb-item">داروها</li>
@endslot
<div class="card">
<div class="card-header">
<h3 class="card-title">لیست داروها</h3>
<div class="card-tools d-flex">
<form action="">
<div class="input-group input-group-sm">
<input type="text" name="search" class="form-control float-right" placeholder="جستجو">
<div class="input-group-append">
<button type="submit" class="btn btn-default"><i class="fa fa-search"></i></button>
</div>
</div>
</form>
<div class="btn-group-sm mr-1">
<a href="{{route('admin.drugs.create')}}" class="btn btn-sm btn-warning mr-2">ایجاد داروی جدید</a>
</div>
</div>
</div>
<!-- /.card-header -->
<div class="card-body table-responsive p-0">
<table class="table table-hover table-bordered">
<tbody>
<tr>
<th>ردیف</th>
<th>نام دارو</th>
<th>توضیحات</th>
<th>تاریخ</th>
<th>تصویر</th>
<th>عملیات</th>
</tr>
@foreach($drugs as $drug)
<tr>
<td>{{$drug->id}}</td>
<td>{{$drug->title}}</td>
<td>{{$drug->description}}</td>
<td>{{$drug->created_at}}</td>
<td>{{$drug->imgUrl}}</td>
<td class="d-flex">
<a href="{{ route('admin.drugs.edit' , $drug->id) }}" class="btn btn-sm btn-success ml-2 mt-1">ویرایش</a>
<form method="POST" action="{{ route('admin.drugs.destroy' , $drug->id) }}">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-sm btn-danger mt-1">حذف</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- /.card-body -->
<div class="card-footer">
{{$drugs->render()}}
</div>
</div>
@endcomponent
کدهای ویو ادیت
@component('admin.layouts.content',['title'=>'ویرایش داروی انتخابی'])
@slot('breadcrumb')
<li class="breadcrumb-item"><a href="{{route('admin.')}}">میز کار</a></li>
<li class="breadcrumb-item"><a href="{{route('admin.drugs.index')}}">داروها</a></li>
<li class="breadcrumb-item">ویرایش داروی انتخابی</li>
@endslot
<div class="card card-info">
<div class="card-header">
<h4 class="card-title">ویرایش داروی انتخابی</h4>
</div>
<!-- /.card-header -->
<!-- form start -->
@include('admin.layouts.errors')
<form class="form-horizontal" action="{{route('admin.drugs.update',['drugs',$drog->id])}}" method="post" enctype="multipart/form-data">
@csrf
@method('patch')
<div class="card-body">
<div class="form-group">
<label for="title" class="col-sm-2 control-label">نام دارو : </label>
<div class="col-sm-10">
<input type="text" value="{{old('title',$drog->title)}}" name="title" class="form-control" id="title" placeholder="نام را وارد کنید">
</div>
</div>
<div class="form-group">
<label for="description" class="col-sm-2 control-label">توضیحات دارو : </label>
<div class="col-sm-10">
<textarea rows="10" name="description" class="form-control" id="description" placeholder="توضیحات دارو را وارد کنید">{{old('description',$drog->description)}}</textarea>
</div>
</div>
<div class="form-group">
<label for="img" class="col-sm-2 control-label">انتخاب تصویر دارو : </label>
<div class="col-sm-10">
<input value="{{old('imgUrl',$drog->imgUrl)}}" type="file" name="img" class="form-control" id="img">
</div>
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-info">ایجاد</button>
<button type="submit" class="btn btn-default float-left">لغو</button>
</div>
<!-- /.card-footer -->
</form>
</div>
@endcomponent
کدهای ویو crate
@component('admin.layouts.content',['title'=>'ایجاد داروی جدید'])
@slot('breadcrumb')
<li class="breadcrumb-item"><a href="{{route('admin.')}}">میز کار</a></li>
<li class="breadcrumb-item"><a href="{{route('admin.drugs.index')}}">داروها</a></li>
<li class="breadcrumb-item">ایجاد داروی جدید</li>
@endslot
<div class="card card-info">
<div class="card-header">
<h4 class="card-title">ایجاد داروی جدید</h4>
</div>
<!-- /.card-header -->
<!-- form start -->
@include('admin.layouts.errors')
<form class="form-horizontal" action="{{route('admin.drugs.store')}}" method="post" enctype="multipart/form-data">
@csrf
@method('POST')
<div class="card-body">
<div class="form-group">
<label for="title" class="col-sm-2 control-label">نام دارو : </label>
<div class="col-sm-10">
<input value="{{old('title')}}" type="text" name="title" class="form-control" id="title" placeholder="نام را وارد کنید">
</div>
</div>
<div class="form-group">
<label for="description" class="col-sm-2 control-label">توضیحات دارو : </label>
<div class="col-sm-10">
<textarea rows="10" name="description" class="form-control" id="description" placeholder="توضیحات دارو را وارد کنید">{{old('description')}}</textarea>
</div>
</div>
<div class="form-group">
<label for="img" class="col-sm-2 control-label">انتخاب تصویر دارو : </label>
<div class="col-sm-10">
<input value="{{old('imgUrl')}}" type="file" name="img" class="form-control" id="img">
</div>
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<button type="submit" class="btn btn-info">ایجاد</button>
<a href="{{route('admin.drugs.index')}}" type="submit" class="btn btn-default float-left">لغو</a>
</div>
<!-- /.card-footer -->
</form>
</div>
@endcomponent
توی صفحه ی ادیت این شکلی بذارین
{{route('admin.drugs.update',$drog)}}
چون توی روت مدل بایندینگ باید به صورت مفرد ارسال کنید
یا به این شکل
route('admin.drugs.update',['drug',$drog->id])
سلام، احتمال زیاد مشکل همون ولیدیشن شما هست
$validateData = $request->validate([
'title'=>'required|string',
'description'=>'required|string',
]);
تست کنید
@coaradsupp
ممنونم..تست کردم ولی درست نشد.در صفحه ادیت ارور Missing required parameters for [Route: admin.drugs.update]
میده
به کدهای ویو ادیت دقت کنید
route('admin.drugs.update',['drugs',$drog->id])
متد route ۲ آرگومان میگیره و آرگومان دوم باید یه آرایه باشه .. که شما آرایه رو صحیح بهش پاس ندادید
route('admin.drugs.update',['drugs' => $drog->id])
@ali.bayat
در صفحه ادیت ارور Missing required parameters for [Route: admin.drugs.update]
میده
توی صفحه ی ادیت این شکلی بذارین
{{route('admin.drugs.update',$drog)}}
چون توی روت مدل بایندینگ باید به صورت مفرد ارسال کنید
یا به این شکل
route('admin.drugs.update',['drug',$drog->id])
@coaradsupp
ممنونم مشکل missing parameter حل شد ولی نمیدونم چرا عملیات دیلیت اجرا نمیشه و موقع ویرایش value نشان داده نمیشه داخل input😣😣
برای ویرایش به این شکل بنویسید تست کنید
$drog->update($request->only('title','description'));
برای روت هاتونم چون دارین از ریسورس ارستفاده میکنید بهتره کانونشن لاراول رو رعایت کنید تا دردسر نشه به این شکل بنویسید
{{route('admin.drugs.update',$drog)}}
یا به این شکل
route('admin.drugs.update',['drug',$drog->id])
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟