0
我得到的錯誤
未定義的變量:用戶(查看: d:\ wamp64 \ WWW \項目\資源\意見\ ADMIN \用戶\ updateUser.blade.php )
但我找不到爲什麼$ user是一個未定義的變量。 對於我使用laravel表單模型綁定的表單。
UserController.php
<?php namespace App\Http\Controllers;
use App\Http\Requests\UserFormRequest;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Session;
use \App\Http\Requests\Auth\RegisterRequest;
class UserController extends Controller {
public function index()
{
// show the list of all users
$users = \App\User::all();
$User = new \App\User();
$userRoleOptions = \App\Roles::pluck('role_name', 'id');
return view('admin.user.indexUser', ['users' => $users, 'User' => $User, 'userRoleOptions' => $userRoleOptions]);
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function delete($id)
{
//find the right user
$user = \App\User::findorfail($id);
// delete the found user
$user->delete();
$users = \App\User::all();
return view('admin.user.indexUser')->with('users', $users);
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
protected function create(RegisterRequest $request) {
//validate the user input
$this->validate($request, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6'
]);
//fill the input in the database
$temp = \App\User::create();
$temp->name = $request->name;
$temp->email = $request->email;
$temp->password = bcrypt($request->password);
$temp->role_id = $request->role_id;
$temp->save();
//return user feedback
Session::flash ('flash_message', 'Account is succesvol aangemaakt!');
$users = \App\User::all();
$User = new \App\User();
$userRoleOptions = \App\Roles::pluck('role_name', 'id');
return view('admin.user.indexUser', ['users' => $users, 'User' => $User, 'userRoleOptions' => $userRoleOptions]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//find the right user
$user = \App\User::find($id);
$User = new \App\User();
$userRoleOptions = \App\Roles::pluck('role_name', 'id');
//return the edit page of the fount user
return view('admin.user.updateUser', array('user' => $user, 'User' => $User, 'userRoleOptions' => $userRoleOptions));
}
public function update(UserFormRequest $request)
{
// find the right user
$user = \App\User::findorfail($request->input('id'));
// validate user input
$this->validate ($request, [
'name' => 'required',
'email' => 'required'
]);
// this 'fills' the user model with all fields of the Input that are fillable
// if statment checks if password is right en if filled it changes the password
$user->name = $request ['name'];
$user->email = $request ['email'];
if (strlen ($request ['password']) > 6) {
$user->password = bcrypt ($request ['password']);
} elseif (strlen ($request ['password']) > 0) {
return redirect()->back();
}
$user->role_id = $request['role_id'];
$user->save(); // no validation implemented
Session::flash ('flash_message', 'Account is succesvol gewijzigd!');
$users = \App\User::all();
$User = new \App\User();
$userRoleOptions = \App\Roles::pluck('role_name', 'id');
return view('admin.user.updateUser', ['users' => $users, 'User' => $User, 'userRoleOptions' => $userRoleOptions]);
}
}
模型用戶
<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'email', 'password', 'role_id'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
public function mail_entry(){
return $this->hasOne('\App\Mail_entry');
}
public function role()
{
return $this->hasMany('\App\Roles', 'id', 'role_id');
}
}
UpdateUser兩個葉片
<div class="modal fade" id="user-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Wijzigen</h4>
</div>
<div class="modal-body">
<div stype="padding:10px;">
{!! Form::model($user, ['route' => 'update_user', 'id' => 'edit-user-form']) !!}
@include('admin/user/partials/_user-form', ['user' => $user, 'submit_tekst' => 'Gebruiker updaten'])
{!! Form::close() !!}
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" id="save-user">Opslaan</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Annuleer</button>
</div>
</div>
</div>
<script type="text/javascript">
var x = $('#user-modal :submit');
console.log(x);
$('#user-modal :submit').remove();
$('#save-user').click(function(){
$.ajax({
url : '{!! URL::route('update_user'); !!}',
type: 'post',
data : $('#edit-user-form').serialize(),
success : function(result){
console.log("succes" + result);
},
error: function(result) {
console.log("error" + result);
if(result.status === 422) {
//process validation errors here.
var errors = result.responseJSON; //this will get the errors response data.
//show them somewhere in the markup
//e.g
errorsHtml = '<div class="alert alert-danger"><ul>';
$.each(errors, function(key, value) {
errorsHtml += '<li>' + value[0] + '</li>'; //showing only the first error.
});
errorsHtml += '</ul></div>';
$('#edit-user-form').append(errorsHtml);
}
}
});
console.log('gelukt');
});
</script>
不應該'公共函數更新(UserFormRequest $ request)'不應該返回?您正在返回的視圖沒有**用戶** var傳遞給它。我會推薦使用'return view('path.to.view',compact('user','users','User');' – Mihailo
謝謝你的重播,我改回了返回重定向() - > route('user'); 這解決了錯誤 – Remco
沒問題,我將這個答案作爲回答,讓其他有類似問題的人可以看到,你可以根據情況使用helper函數back()。 – Mihailo