我一直在尝试解决此错误已有将近2天。不用说,我对Laravel还是很陌生。我正在使用Laravel的注册表(进行了一些修改),并将该User数据存储在数据库中名为“ customusers”的表中。该数据包括其名称/电子邮件/性别/描述等。我正在尝试使用资源控制器来基本上打印和编辑该数据。我面临的问题是,每当我尝试在主页上回显数据时,都会出现错误“此集合实例中不存在属性[id]”或电子邮件/名称。但是,当我使用Auth :: user()-> id回显数据时,它可以工作。很好,如果我只想回显数据,那是可行的。但是我也想编辑这些数据,我将不得不使用我的模型。所以下面是我的代码:
Display.blade.php:
<div id="wrapper">
<div id="content">
<div id="card">
<div id="front">
<div id="top-pic"></div>
<div id="avatar"><span style="position: absolute;padding-top: 17px;margin-left: 34px;color: #fff;font-size: 64px;" class="h5">
{{ Auth::user()->name[0] }}
</span></div>
<div id="info-box">
<div class="info">
<h1>{{ Auth::user()->name }}</h1>
<h2>{{ Auth::user()->message }}</h2>
</div>
</div>
<div id="social-bar">
<a href="{{ Auth::user()->facebook }}" target="_blank">
<i class="fa fa-facebook"></i>
</a>
<a href="{{ Auth::user()->twitter }}" target="_blank">
<i class="fa fa-twitter"></i>
</a>
{{ link_to_route('display.edit','',[$customusers->id],['class'=>'fa fa-edit']) }}
</div>
</div>
Edit.blade.php:
{!! Form::model($customusers,array('route'=>['display.store',$customusers->id],'method'=>'PUT')) !!}
<div class="form-group">
{!! Form::text('name',null,['class'=>'form-control','placeholder'=>'Name']) !!}
</div>
<div class="form-group">
{!! Form::email('email',null,['class'=>'form-control','placeholder'=>'Email']) !!}
</div>
<div class="form-group form-row">
<div class="col-5">
{!! Form::select('gender', ['Male' => 'Male', 'Female' => 'Female'], null, ['class'=>'form-control','placeholder'=>'Choose Gender']); !!}
</div>
<div class="col">
{!! Form::text('facebook',null,['class'=>'form-control','placeholder'=>'Facebook ID']) !!}
</div>
<div class="col">
{!! Form::text('twitter',null,['class'=>'form-control','placeholder'=>'Twitter Handle']) !!}
</div>
</div>
<div class="form-group">
{!! Form::textarea('message',null,['class'=>'form-control','placeholder'=>'Talk about yourself']) !!}
</div>
<div class="form-group">
{!! Form::button('Create',['type'=>'submit','class'=>'btn btn-danger col-lg-12']) !!}
</div>
{!! Form::close() !!}
ProfileController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\CustomUser;
use Illuminate\Support\Facades\DB;
class ProfileController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$customusers = CustomUser::all();
return view ('display',compact('customusers'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit(CustomUser $customusers)
{
return view ('edit',compact('customusers'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, CustomUser $customusers)
{
$customusers->update($request->all());
return redirect()->route('display.index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
CustomUser.php(模型):
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class CustomUser extends Authenticatable
{
use Notifiable;
protected $table = 'customusers';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name','username','email','gender','password','message','twitter','facebook',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
Web.php(路由):
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::resource('/display','ProfileController');
如您所见,我正在使用compact in index()函数将数据库中的所有用户数据提供给它,而当我dd($ customusers)时,它确实向我显示了数组中的数据。但是,当我使用{{$ customusers-> name}}时,它给我一个错误,指出“此集合实例不存在属性[name]”。因此,每当我尝试link_to_route('display.edit','',[$customusers->id],'')
用于将用户重定向到“编辑”页面时,都会发生同样的情况。请帮助我看看我在做什么错。我以前制作过一个CRUD应用程序,基本上我做了同样的事情,而且一切都很好。所以我不明白这里是什么问题。
您需要循环客户数据:
@foreach($customusers as $customer)
{{ link_to_route('display.edit','',[$customer->id],['class'=>'fa fa-edit']) }}
@endforeach
或者,您可以编辑当前登录的数据。
{{ link_to_route('display.edit','',[Auth::user()->id],['class'=>'fa fa-edit']) }}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句