当我输入 php artisan serve 时,laravel 试图获取非对象的属性
Posted
技术标签:
【中文标题】当我输入 php artisan serve 时,laravel 试图获取非对象的属性【英文标题】:laravel trying to get property of non-object when i type php artisan serve 【发布时间】:2016-03-25 04:48:08 【问题描述】:我已经播种了一个管理员用户并覆盖了 postRegister() 方法。
我使用已播种的凭据登录。
登录后我尝试注册调用 auth/register。
@extends('master')
@section('title','Creating.. User')
@section('content')
<div class="container-fluid">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Register</div>
<div class="panel-body">
@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li> $error </li>
@endforeach
</ul>
</div>
@endif
<form class="form-horizontal" role="form" method="POST" action=" url('/create') ">
!! csrf_field() !!
<div class="form-group">
<label class="col-md-4 control-label">Name</label>
<div class="col-md-6">
<input type="text" class="form-control" name="name" value=" old('name') ">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email" value=" old('email') ">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="password">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="password_confirmation">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Mobile</label>
<div class="col-md-6">
<input type="number" class="form-control" name="mobile">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Team</label>
<div class="col-md-6">
<input type="number" class="form-control" name="team_id">
</div>
</div>
<!--
<div class="form-group">
<label class="col-md-4 control-label">Role</label>
<div class="col-md-6">
<input type="text" class="form-control" name="role">
</div>
</div>
-->
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Register
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
现在,我以管理员身份登录后尝试注册。我这样做是为了创建用户。
这是我的 routes.php
Route::group(['middleware' => ['auth']],function()
if(auth()->user()->id==1)
Route::get('/create',function()
return view('create');
);
//Route::post('/create','Auth/AuthController@create');
else
echo "You are not permitted to create user";
);
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
这是我在 Auth\AuthController 中的 postRegister 方法:
public function postRegister(Request $request)
$user = new User();
$user->name = ucwords($request->input('name'));
$user->email = strtolower($request->input('email'));
$user->mobile = $request->input('mobile');
$user->team_id = $request->input('team_id');
$user->password = Hash::make($request->input('password'));
$user->save();
return "yes";
执行此操作后出现错误,然后我尝试使用 php artisan serve 重新启动服务器。现在,当我运行命令时出现错误异常。
C:\xampp\htdocs\mpms>php artisan serve
[ErrorException] 试图获取非对象的属性
【问题讨论】:
我犯了一个错误。我知道 auth()->guest() 会帮助它。 错误行号是什么 Routes.php line-2 .If 应该添加到 create 中。我不知道逻辑,但它对我有用。如果我在记录错误后尝试创建用户,我现在会收到另一个错误显示为“方法不允许”。谁能告诉我。登录后如何创建用户。 【参考方案1】:route:group 的正确语法是
Route::group(['middleware' => 'auth'], function ()
Route::get('/', function ()
// Uses Auth Middleware
);
);
并在登录后创建用户添加此路由
Route::group(['middleware' => 'auth'],function()
Route::get('/create',function()
return view('create');
);
);
表单应该将数据发布到
action=" url('/auth/register')
【讨论】:
我已经覆盖了方法 auth/register。我创建了一个管理员,管理员可以创建用户。我不能直接调用 post/register 方法。所以,我创建了一个新方法来存储用户..以上是关于当我输入 php artisan serve 时,laravel 试图获取非对象的属性的主要内容,如果未能解决你的问题,请参考以下文章
当我在终端中键入 php artisan serve 时,我收到“需要 Mcrypt PHP 扩展”
当我想运行 php artisan serve 时可能会出现啥问题
在本地主机上运行 php artisan serve 命令时出错
Laravel:php artisan serve 无法启动