1
我正在使用框架Laravel。UserController :: edit()缺少參數2 - Laravel
我有2個表格(用戶和人員)。當我要編輯的用戶,並在同一時間的人,我得到錯誤信息:
缺少論據2 UserController中::編輯()
表用戶
CREATE TABLE IF NOT EXISTS `festival_aid`.`users` (
`user_id` BIGINT NOT NULL AUTO_INCREMENT,
`user_username` VARCHAR(45) NOT NULL,
`user_email` VARCHAR(45) NOT NULL,
`user_password` CHAR(32) NOT NULL,
`user_salt` CHAR(32) NOT NULL,
`user_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user_modified` TIMESTAMP NULL,
`user_deleted` TIMESTAMP NULL,
`user_lastlogin` TIMESTAMP NULL,
`user_locked` TIMESTAMP NULL,
`user_token` VARCHAR(128) NULL,
`user_confirmed` TIMESTAMP NULL,
PRIMARY KEY (`user_id`, `person_id`),
UNIQUE INDEX `user_email_UNIQUE` (`user_email` ASC),
INDEX `fk_users_persons1_idx` (`person_id` ASC),
CONSTRAINT `fk_users_persons1`
FOREIGN KEY (`person_id`)
REFERENCES `festival_aid`.`persons` (`person_id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
表人士
CREATE TABLE IF NOT EXISTS `festival_aid`.`persons` (
`person_id` BIGINT NOT NULL AUTO_INCREMENT,
`person_firstname` VARCHAR(45) NULL,
`person_surname` VARCHAR(45) NULL,
`person_created` TIMESTAMP NOT NULL,
`person_modified` TIMESTAMP NULL,
`person_deleted` TIMESTAMP NULL,
PRIMARY KEY (`person_id`))
ENGINE = InnoDB;
型號人
class Person extends Eloquent {
protected $table = 'persons';
protected $primaryKey = 'person_id';
public function person()
{
return $this->belongsTo('User');
}
public $timestamps = false;
}
的UserController中與編輯和更新
public function edit($user_id, $person_id)
{
$user = User::find($user_id);
$person = Person::find($person_id);
return View::make('users.edit')
->with('user', $user)
->with('person', $person);
}
public function update($user_id, $person_id)
{
$rules = array(
'person_firstname' => 'required',
'person_lastname' => 'required',
'user_username' => 'required|unique:users',
'user_email' => 'required|unique:users|email',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
Redirect::to('users/' . $user_id . '/' . $person_id . '/edit')
->withErrors($validator)
->withInput(Input::except('user_password'));
} else {
$user = User::find($user_id);
$person = Person::find($person_id);
$person->person_firstname = Input::get('person_firstname');
$person->person_lastname = Input::get('person_lastname');
$user->user_username = Input::get('user_username');
$user->user_email = Input::get('user_email');
$user->save();
$person->save();
Session::flash('message', 'Successfully updated user!');
return Redirect::to('users/index');
}
查看編輯
<legend>Edit {{ $person->person_firstname }}</legend>
{{ HTML::ul($errors->all()) }}
{{ Form::model($user, $person, array('method' => 'PUT')) }}
<div class="form-group">
{{ Form::label('firstname', 'Firstname') }}
{{ Form::text('person_firstname', Input::old('firstname'), array('class'=>'form-control', 'placeholder' => 'Firstname')) }}
</div>
<div class="form-group">
{{ Form::label('surname', 'Surname') }}
{{ Form::text('person_surname', Input::old('surname'), array('class'=>'form-control', 'placeholder' => 'Surname')) }}
</div>
<div class="form-group">
{{ Form::label('username', 'Username') }}
{{ Form::text('user_username', Input::old('username'), array('class'=>'form-control', 'placeholder' => 'Username')) }}
</div>
<div class="form-group">
{{ Form::label('email', 'Email') }}
{{ Form::text('user_email', Input::old('email'), array('class' => 'form-control')) }}
</div>
<div class="form-group">
{{ Form::label('Password') }}
{{ Form::password('user_password', array('class'=>'form-control', 'placeholder' => 'Password')) }}
</div>
{{ Form::submit('Edit the User!', array('class' => 'btn btn-primary')) }}
{{ Form::close() }}
的路線
Route::get('/users/{user_id}/edit', '[email protected]');
我在做什麼錯?
現在它給了我:Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException。我認爲它現在無法找到路線.. – Gilko
我也改變了返回Redirect ::到('users /'。$ user_id。'/ edit')到這個返回Redirect ::到('users /'。 $ user_id。'/'。$ person_id。'/ edit')在更新操作中 – Gilko
您需要確保指向編輯頁面的任何鏈接都具有相關更新,比較網址和定義的路由。現在你知道它爲什麼會發生,你可能會想出來。同時用新數據更新原始問題作爲編輯。 – SamV