سلام
خسته نباشید
یه سوالی داشتم دوستان ممنون میشم راهنماییم کنید
من با استفاده از softdeleteکاربران رو حذف میکنم بطوری که کاربران حذف شده در دیتابیس باقی میمونن و ادمین اگر خواست میتونه اونهارو restore کنه
حالا یه مشکلی دارم که بطور دستی باید بگم کدوم کاربر رو برگردونه
در حالیکه میخوام هر موقع روی restore زد بدون اینکه بهش آیدی بدم اونو برگردونه
سلام. یه متد برای restoreکردن داخل کنترلر دارین. به اون متد یه آرگومان میدین که آیدی یوزره. route مربوط به این متد هم یه متغیر داخلشه، توی ویو هم با هلپر فانکشن ()route، آرگومان دومش، متغیر که آیدی یوزر باشه رو تعیین میکنین.
این فقط متد index هست. داخل متد بایند کردین که اشتباهه، متد index شما نیازی به مدل بایندینگ نداره:
public function index (User $user)
یه روت PATCH بسازین:
/users/{id}/restore
یه متد هم داخل کنترلر داشته باشین مثلا به اسم restore:
public function restore($id)
حالا آیدی یوزر رو دارین، دیگه به جای دستی وارد کردن، از این متغیر id استفاده کنین.
usercontroller من از نوع resourceهست و نمیتونم متد جدیدی بهش اضافه کنم
یه کنترلر جدید ساختم و کاری رو که گفتید انجام دادم ولی restore انجام نمیشه😥
سلام
اشکال نداره از نوع restore باشه. کافیه یک route قسمت پائین route resource بسازید و به کنترلر مربوطه ارجاع به همراه method اون ارجاع بدید.
@a.ghaderi1375
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
از کدوم برای حذف کردن استفاده میکنی؟!
<form action="{{ action('Controller@destroy') }}" method="DELETE">
...
</form>
<form action="{{ action('Controller@destroy') }}" method="POST">
<input type="hidden" name="_method" value="DELETE">
...
</form>
درخواستت post میشه دیگه؟!
به صورت زیر وارد کنید.
Route::post('/users/restore/{id}', 'User/UserController@restore');
بهتره کد ها رو هم وارد کنید تا راحتتر بشه پاسخ داد.
@a.ghaderi1375
<a href="{{route('admin.users.restore' , ['id'=>$user->id])}}" class="btn btn-sm btn-warning mr-۱ ">Restore</a>
user رو به id تبدیل کنید. برای کد از قسمت بالای ادیتور استفاده کنید.
نام restore رو هم باید روی route بسازید.
@a.ghaderi1375
Route::post('/users/{id}/restore', 'User\UserController@restore')->name('users.restore');
الان این ارور رو دارم
<td class="d-flex">
@if(! $user->isDeletedUser())
@can('delete-user')
<form action="/admin/users/{{$user->id}}" method="post">
@csrf
@method('delete')
<button class="btn btn-sm btn-danger">حذف</button>
</form>
@endcan
@can('edit-user')
<a href="{{route('admin.users.edit' , ['user'=>$user->id])}}" class="btn btn-sm btn-primary mr-1">ویرایش</a>
@endcan
@if($user->isStaffUser())
@can('staff-user-permissions')
<a href="{{route('admin.users.permissions' , ['user'=>$user->id])}}" class="btn btn-sm btn-warning mr-1 ">دسترسی ها</a>
@endcan
@endif
@endif
@if($user->isDeletedUser())
@can('restore-user')
<a href="{{route('admin.users.restore' , ['id'=>$user->id])}}" class="btn btn-sm btn-warning mr-1 ">Restore</a>
@endcan
@endif
</td>
سلام
شما باید method فرم تون رو به post تبدیل کنید اون خطایی که میگیره مربوط به اینه که متود فرم تون get هستش.
@a.ghaderi1375
یک دنیا نه بیشتر از یه دنیا ممنونم ازتون
ان شاالله خدا به علمتون برکت بده🌺☘️😊
@mohaligateway
@samanzdev
@juza66
@muhammad
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟