2016-05-05 11 views
0

編集ビューに移動すると、このエラー「非オブジェクトのプロパティを取得しようとしています」が表示されます。私はアンケートを編集するための編集ビューを持っており、そのビューで質問を追加できます。受信エラー「非オブジェクトのプロパティを取得しようとしています」

私の編集ビュー:

@extends('layouts.master') 

@section('title', 'Edit Questionnaire | SurveySays!') 

@section('content') 
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
     <h1>Edit {{$questionnaires->title}}</h1> 
     <h3>Edit your questionnaire using the form below:</h3> 

     {!! Form::model($questionnaires, ['method' => 'PATCH', 'url' => '/questionnaires/' . $questionnaires->id]) !!} 

     <div class="container-fluid"> 
      <div class="form-group"> 
       {!! Form::label('title', 'Title:') !!} 
       {!! Form::text('title',null,['id' => 'title','class' => 'form-control']) !!} 
      </div> 
      <div class="form-group"> 
       {!! Form::label('description', 'Description:') !!} 
       {!! Form::textarea('description',null,['class' => 'form-control']) !!} 
      </div> 
      <div class="form-group"> 
       {!! Form::label('ethics', 'Ethical considerations:') !!} 
       {!! Form::textarea('ethics',null,['class' => 'form-control']) !!} 
      </div> 
      <hr> 
      <div class="form-group"> 
       {!! Form::label('questions', 'Questions:') !!} 
       @foreach($questions as $question) 
        <div class="form-group"> 
         {!! Form::checkbox('question[]', $question->id, $questionnaires->question->contains($question->id), ['id' =>$question->id]) !!}} 
         {!! Form::label($question->question) !!} 
        </div> 
       @endforeach 
      </div> 
      <hr> 
      <div class="form-group"> 
       {!! Form::submit('Update', array('class' => 'btn btn-success form-control')) !!} 
      </div> 
     </div> 
    </div> 

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


@endsection 

マイQuestionnairesControllerの@編集機能:このエラーの原因となっている何

public function edit($id) 
    { 
     $questionnaires = Questionnaire::findOrFail($id); 
     $questions = Question::findOrFail($id); 

     return view('questionnaires.edit', compact('questionnaires'), compact('questions')); 
    } 

?助けてください! :)

+4

どのラインでエラーが発生しますか? '$ questionnaires'または' $ question'のいずれかがオブジェクトではない可能性が高いです。 – Scuzzy

+2

Q:あなたはライン#を識別しましたか? – paulsm4

+0

あなたは完全なエラーを共有できますか? ++ try dd($ questionnaires($ id));とdd($ questions($ id));結果がnullでないかどうかを調べる –

答えて

0

質問票モデルやアンケートで関係を設定するのを忘れてしまったのは、$ questionnaires-> questionで関係の質問を見つけることができないと思います。

必ずご確認ください。そしてあなたを助けることができる希望。お使いのコントローラでのコードの下

0

てみ

public function edit($id) 
{ 
    $questionnaires = Questionnaire::findOrFail($id); 
    $questions = Question::findOrFail($id); 

    return view('questionnaires.edit', compact('questionnaires','questions')); 
} 
0

findOrFailはモデルではなく、モデルのコレクションのインスタンスを返します。お使いのコントローラでは、あなたが持っている:このコードで

$questions = Question::findOrFail($id); 

を、$questionsQuestionインスタンス(またはnull)になります。次に、あなたのビューで、あなたはforeachのと、この変数をループしている:

@foreach($questions as $question) 
    // snip 
@endforeach 

これはちょうど、インスタンスの属性をループすることになります。それ自身がオブジェクトではない最初の属性は、「非オブジェクトのプロパティを取得しようとしています」というエラーを表示します。

コードからは、$questionsがすべての質問のリストであると仮定しています。私はあなたのコントローラ内のあなたのコードを実際には次のように推測しています:

$questions = Question::get(); 
関連する問題