【发布时间】:2019-08-23 08:47:30
【问题描述】:
您好,我有一个名为 deactivate 的控制器功能,如果我单击一个按钮,它应该执行此功能:
public function deactivate($id)
{
$user = User::find($id);
$user->verified = false;
$user->save();
return redirect('/adminmodul')->with('success', 'Nutzer wurde erfolgreich deaktiviert');
}
在我看来,按钮看起来是这样的:
<td><a href="{{ route('adminmodul.deactivate',$user->id)}}" class="btn btn-primary"><i class="fas fa-eye"></i></a></td>
这是我的路线:
Route::patch('/adminmodul/{id}',[
'as' => 'adminmodul.deactivate',
'uses' => 'AdminController@deactivate'
]);
每次点击按钮我都会收到成功消息,但什么也没发生,我不知道为什么
我可以向你展示我的完整控制器:
<?php
namespace App\Http\Controllers;
use App\User;
use App\Angebot;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class AdminController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$angebote = DB::table('angebots')->first();
$users = DB::table('users')->get();
return view('adminmodul.index', compact('users', 'angebote'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('adminmodul.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* 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($id)
{
$user = User::find($id);
return view('adminmodul.edit', compact('user'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$request->validate([
'name'=>'required',
]);
$user = User::find($id);
$user->name = $request->get('name');
$user->save();
return redirect('/adminmodul')->with('success', 'Benutzer wurde geändert');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$user = User::find($id);
$angebot = Angebot::where('firma', $id);
$angebot->delete();
$user->delete();
return redirect('/adminmodul')->with('success', 'Nutzer wurde erfolgreich gelöscht');
}
public function deactivate($id)
{
$user = User::find($id);
$user->verified = false;
$user->save();
return redirect('/adminmodul')->with('success', 'Nutzer wurde erfolgreich deaktiviert');
}
}
还有我的路线:
Route::resource('/adminmodul', 'AdminController');
Route::get('/adminmodul/{id}', 'AdminController@deactivate')->name('adminmodul.deactivate');
我不知道我做错了什么??因为我一直都这样做
这是我的餐桌用户:
【问题讨论】:
-
verified 的数据类型是什么?
-
类型为布尔型
-
保存数据后打印 $user 得到什么
-
我该怎么做?
-
确保您的
$user->id不为空。
标签: laravel controller routes