试图获得非对象的属性 - Laravel Form

时间:2017-09-12 11:46:31

标签: forms laravel many-to-many

我正在创建一个有很多关系的表单。我有一个帖子表和一个活动表。使用数据透视表有很多对很多链接。我正在创建一个表单来向帖子添加一个或多个活动。我收到'ErrorException' - 试图获取非对象的属性。我无法理解为什么这不起作用。

如果您能为我提供任何帮助,我将不胜感激。

我的相关代码如下。

//Posts/create.blade.php

{!!Form::open(['action' => 'PostController@store','method' => 'POST',    'class'=>'form-group'])!!}
  {{Form::bsText('title','',['placeholder' => 'Trip Name'])}}
  {{Form::bsTextarea('body','',['placeholder' => 'Trip Description'])}}
  {{Form::bsSubmit('submit')}}



  {{Form::label('activities', 'Activity:') }}
  <select class="form-control select2-multi" name="activities" multiple="multiple">
    @foreach($activities as $activity)
    <option value="{{ $activity->id }}">{{ $activity->activity_name}}
    </option>
    @endforeach

  </select>

{!! Form::close() !!}

// PostsController

public function create()
    {
      $activities = Activity::all();
        return view('posts.create')->withActivities($activities);
        $posts = Post::all();

    }
public function store(Request $request)
{
    // Create a new post using the request data
    // Save it to the database
    $this->validate(request(), [
        'title' => 'required',
        'body' => 'required',

    ]);
  $post = Post::create([
    'title' =>request('title'),
    'body' =>request('body'),
    'user_id' => auth()->id(),
    'activity_id' => id()
  ]);



    // And then redirect to somewhere in  application
    return redirect()->route('posts.show', $post->id);
}

1 个答案:

答案 0 :(得分:0)

只有当您有空变量但指向刀片文件以呈现/显示浏览器时,才会抛出此错误。或者,如果从数据库中检索记录,则在查询中添加findOrFail以防止出现这类问题。谢谢。