所以,我已经创建了一个控制器来在我的应用程序中添加主题,并将其存储在数据库中。唯一的问题是,当我显示一个视图时,它给了我ErrorException。
这是主题控制器
public function store(Request $request)
{
$users = User::all();
$userid = Auth::user()->id;
$topic = new Topic([
'user_id' => $userid,
'title' => $request->get('title'),
'description' => $request->get('description'),
'tags' => $request->get('tags')
]);
$topic->save();
//Creating a loop for each user, send a notification.
$message_content = "The " . Auth::user()->first_name . " " . Auth::user()->last_name . " just added a new topic. \n " . $topic->title . " \n ";
foreach ( $users as $user ) {
mail( $user->email, 'New Topic!', $message_content);
}
return redirect('/topics')->with('topics', $topics);
}
这是视图
@foreach($topics as $topic)
<div class="col-lg-4 col-md-6">
<div class="widget widget-shadow">
<div class="widget-content padding-20 bg-green-500 white height-full">
<a class="avatar pull-left margin-right-20" href="javascript:void(0)">
<img src=" {{URL::to('uploads')}}/{{ $topic->creator->image }} " alt=" ">
</a>
<div style="overflow:hidden;">
<small class="pull-right grey-200">{{$topic['created_at']}}</small>
<div class="font-size-18"> {{$topic->creator->first_name}} {{$topic->creator->last_name}}</div>
<div class="grey-200 font-size-14 margin-bottom-10">{{$topic->creator->role}}</div>
<blockquote class="cover-quote font-size-16 white">{{$topic['title']}}
</blockquote>
</div>
</div>
</div>
</div>
@endforeach
这是主题模型
class Topic extends Model
public $fillable = ['title', 'user_id', 'description', 'tags'];
public function creator() {
return $this->belongsTo( User::class, 'user_id', 'id');
这是用户模型(仅与主题模型的关系)
public function hasTopic() {
return $this->hasMany( Topic::class, 'id', 'user_id' );
}
最后这里是获取主题数据并显示视图的控制器
public function sdp()
{
$topics = Topic::all();
$users = User::with([ 'hasTopic' => function ($query) {
$query->where('id', 'user_id');
}]);
return view('topics.student', ['topics' => $topics, 'users' => $users] );
}
答案 0 :(得分:0)
您没有通过重定向
传递$topic
变量
return redirect('/topics')->with('topics', $topics);
更新1: 你能尝试这样吗
$topic->created_at
而不是像$topic
中的对象那样使用like数组,而不是数组。
$topic['created_at']
答案 1 :(得分:0)
由于错误表明您正在尝试获取null对象的属性。
我不清楚它是什么对象,因为我没有看到堆栈跟踪或文件的内容。但正如它的观点(/home/118696.cloudwaysapps.com/fwzyssdrmj/public_html/storag e / framework / views / 7b fce097aa53fc730f 134b 425d87dd73f09b d893.p hp)我假设可能是主题的创建者设置为null,但您尝试访问该null对象的属性。当你用user_id保存主题时,假设用户已登录并具有id但它为null。稍后你试图访问那个主题上的user_id的空对象($ topic-&gt; creator)。检查该字段是否可以为空?如果是,请检查是否存在user_id为null的主题。