Php 从Laravel 5.8中的空值创建默认对象
嗨,我想弄明白为什么我总是犯这个错误?我总是从空值创建默认对象。我只想使编辑部分编辑和更新用户。但当我单击更新按钮时,会显示此错误。该错误在公共功能更新(请求$Request)部分突出显示 这是我的代码: UserController.phpPhp 从Laravel 5.8中的空值创建默认对象,php,html,laravel,laravel-5.8,Php,Html,Laravel,Laravel 5.8,嗨,我想弄明白为什么我总是犯这个错误?我总是从空值创建默认对象。我只想使编辑部分编辑和更新用户。但当我单击更新按钮时,会显示此错误。该错误在公共功能更新(请求$Request)部分突出显示 这是我的代码: UserController.php <?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\User
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
class UserController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
public function index(Request $request)
{
$page_title = 'List of Users';
$page_icon = 'users';
$users = User::all();
return view('admin.users.index', compact('users', 'page_title', 'page_icon'));
}
public function systemUpdateCheck(Request $request)
{
if(!\Auth::user()){
abort(403);
}
if(\Auth::user() and !\Auth::user()->isAdmin()){
abort(404);
}
$result1='';
if(PHP_OS == 'WINNT'){
$doc_root = base_path();
}
else{
$doc_root = preg_replace("!${_SERVER['SCRIPT_NAME']}$!", '', $_SERVER['SCRIPT_FILENAME']).'';
}
$username='mohd-aidi';$psswd='8dc3e5026ab4cbbaac997707a497fe64e18cddd0';$gitSource="github.com/mohd-aidi/laravelbase";
exec("cd $doc_root && git pull https://$username:$psswd@$gitSource.git 2>&1", $results);
$result1='';
foreach ($results as $result) {
$result1 .= $result.'<br/>';
}
if (isset($request['ram'])) {
try{
\Artisan::call('migrate', ["--force"=> true ]);
$result1 .= \Artisan::output();
}catch(Exception $e){
$result1 = $e->getTraceAsString();
}
}
if (isset($request['rdbs'])) {
try{
\Artisan::call('db:seed', ["--force"=> true ]);
$result1 .= \Artisan::output();
}catch(Exception $e){
$result1 = $e->getTraceAsString();
}
}
/*
\Artisan::call('config:cache');
$result1 .= \Artisan::output();
*/
exec("cd $doc_root && composer dump-autoload 2>&1", $results3);
foreach ($results3 as $result) {
$result1 .= $result.'<br/>';
}
if(strlen($result1)==0){
$result1='Nothing to check here. off you go now';
}
$data = "<pre>$result1</pre>";
return view('_blank', compact('data'));
}
public function edit($id)
{
$page_title = 'Kemaskini Pengguna';
$page_icon = 'edit';
$user = User::find($id);
return view('admin.users.edit', compact('page_title','page_icon','user'));
}
public function update(Request $request)
{
$request->validate([
'name'=>'required',
'email'=>'required',
'username'=>'required'
]);
$id = $request->input('user_id');
$user = User::find($id);
$user->name = $request->get('name');
$user->email = $request->get('email');
$user->password = $request->get('password');
$user->username = $request->get('username');
$user->type_id = $request->get('type_id');
$user->save();
return redirect('/users')->with('success', 'User updated!');
}
public function store(Request $request)
{
$request->validate([
'name'=>'required',
'email'=>'required',
'username'=>'required'
]);
$user = new User([
'name' => $request->get('name'),
'email' => $request->get('email'),
'password' => $request->get('password'),
'username' => $request->get('username'),
'type_id' => $request->get('type_id'),
]);
$user->save();
return redirect('/users')->with('success', 'User saved!');
}
}
最有可能的$user
失败,因为您无法将属性分配给它。也许你应该改用$request->route('user_id')
,因为你的用户id来自路由,而不是输入。顺便说一下,你应该做调试部分,dd()
函数是你的朋友,如果你已经识别了行错误,你应该开始使用dd()
,这样你就可以检查数据是如何流动的,然后你可以想出什么是wrong@Kevin好吧,我先试试。@Kevin还是给空。或者我在routes.web中遇到了问题?很可能是$user
失败了,因为您无法将属性分配给它。也许你应该改用$request->route('user_id')
,因为你的用户id来自路由,而不是输入。顺便说一下,你应该做调试部分,dd()
函数是你的朋友,如果你已经识别了行错误,你应该开始使用dd()
,这样你就可以检查数据是如何流动的,然后你可以想出什么是wrong@Kevin好吧,我先试试。@Kevin还是给空。或者我在routes.web上遇到了问题?
@extends('layouts.master')
@section('content')
<div class="main-card mb-3 card" data-step="6" data-intro="Users list">
<div class="card-body">
<div class="row">
<div class="col-sm-8 offset-sm-2">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
<br />
@endif
<form method="post" action="{{ route('admin.users.update', $user->id) }}">
@method('PATCH')
@csrf
<div class="form-group">
<label for="name">Name:</label>
<input type="string" class="form-control" name="name" value= "{{ $user->name }}" />
</div>
<div class="form-group">
<label for="email">E-Mail:</label>
<input type="text" class="form-control" name="email" value= "{{ $user->email}}" />
</div>
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" name="username" value= "{{ $user->username }}" />
</div>
<div class="form-group">
<label for="type_id">Type id:</label>
<input type="text" class="form-control" name="type_id" value= "{{ $user->type_id }}" />
</div>
<button type="submit" class="btn btn-primary">Update</button>
</form>
</div>
</div>
</div>
</div>
@endsection
@section('footer')
<script type="text/javascript">
$(document).ready(function(){
$('#example').DataTable();
});
</script>
@endsection
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', 'HomeController@index')->name('welcome');
Auth::routes();
Route::get('/faq/{type}', 'PublicController@faqByType')->name('faq_by_type');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/profile', 'ProfileController@profile')->name('profile');
Route::group(['prefix' => 'admin'], function () {
Route::resource('/users', 'Admin\UserController');
Route::get('/users', 'Admin\UserController@index')->name('admin_users');
Route::get('/users/edit/{id}','Admin\UserController@edit')->name('admin.users.edit');
//Route::get('/users/update{id}','Admin\UserController@update')->name('admin.users.update');
Route::post('/users/update','Admin\UserController@update')->name('admin.users.update');
Route::get('/kompaun', 'DemoController@indexKompaun')->name('kompaun.list');
Route::get('/resit/parking', 'ParkingTicketsContoller@index')->name('resit.list');
Route::get('/map/area', 'DemoController@indexMapArea')->name('map.area.index');
Route::get('/report', 'ReportController@index')->name('report.index');
Route::get('/check/system/update', 'Admin\UserController@systemUpdateCheck')->name('admin.system.update');
});