1
我有一個註冊函數完成如下所示,並想知道如何添加更新方法。我只是爲我的更新添加另一條路線併爲其添加控制器功能?我在正確的軌道上嗎?以下是否正確?在運行時,它告訴我的致命異常,意想不到的回報..添加更新方法laravel
route.php
Route::post('manage_accounts', '[email protected]');
Route::post('manage_accounts', '[email protected]');
Controller.php這樣
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\StoreNewUserRequest;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Hash;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\User;
use App\Role;
class ManageAccountsController extends Controller
{
public $userRepository;
public function __construct(UserRepository $userRepository)
{
$this->userRepository = $userRepository;
}
public function index()
{
$users = User::orderBy('name')->get();
$roles = Role::all();
return view('manage_accounts', compact('users', 'roles'));
}
public function register(StoreNewUserRequest $request)
{
// process the form here
$this->userRepository->upsert($request);
Session::flash('flash_message', 'User successfully added!');
return redirect()->back();
}
public function update(UpdateUserRequest $request)
{
$this->userRepository->upsert($request)
//Session::flash('flash_message', 'User successfully updated!');
return redirect()->back();
}
}
class UserRepository {
public function upsert($data)
{
// Now we can separate this upsert function here
$user = new User;
$user->name = $data['name'];
$user->email = $data['email'];
$user->password = Hash::make($data['password']);
$user->mobile = $data['mobile'];
$user->role_id = $data['role_id'];
// save our user
$user->save();
return $user;
}
}
謝謝,但我怎麼知道我的view.blade.php知道調用哪個方法?例如是否存儲或更新? – EunJi
對於商店,您將向POST帳戶創建一個表單,而對於更新,您會向/ accounts/{id}發送PATCH請求,其中id是您要更新的帳戶的ID。 –