2017-01-09 9 views
0

こんにちは私はlaravelに新しいですし、今私は、このエラーが直面していますBadMethodCallException in Macroable.php line 74: Method save does not exist.Macroable.phpのBadMethodCallException行74:メソッドの保存が存在しません。 Laravel 5.2

もし私var_dump(); die();私はデータベースに結果を保存する方法保存に使用する場合、私はそれらのすべてを取得しています出力のすべてこのエラーはsave method does not existです。私のコードのどこが間違っているのか分かりません。

適切な理解のためにルートコントローラとビューを参照してください。前もって感謝します。

コントローラ

public function td($id) { 

    $tn = $this->t->getAllTn(); 
    $to = $this->t->getAllTo(); 

    $time = Carbon\Carbon::now(); // current time 
    $time->toDateTimeString(); // converting time to string 

    if((isset($_POST["n"]) && !empty($_POST["n"]))) { 
     $tn->t_type_id = Input::get('options'); 
     $tn->d_id = $id; 
     $tn->result = Input::get('message'); 
     $tn->date = $time; 

     // var_dump($tn->date); 
     // var_dump($tn->t_type_id); 
     // var_dump($tn->d_id); 
     // var_dump($tn->result); 
     // die(); 

     Session::flash('message', 'Your tn has been added.'); 
     $tn->save(); 

    } else if((isset($_POST["o"]) && !empty($_POST["o"]))) { 

     $to->d_id = $id; 
     $to->outcome = Input::get('message'); 
     $to->date = $time->toDateTimeString(); 

     // var_dump($to->d_id); 
     // var_dump($to->outcome); 
     // var_dump($to->date = $time->toDateTimeString()); 
     // die(); 

     Session::flash('message', 'Your to has been added.'); 
     $to->save(); 
    } 
    return redirect('/t'); 
} 

ルート

Route::get('/t/{id}', '[email protected]'); 
Route::post('/t/{id}', '[email protected]'); 

ビュー

<div class="form-group"> 
<form action="/t/{{ $d['id'] }}" method="post"> 

        {{ csrf_field() }} 

<div class="panel-body"><h4>Heading here</h4></div> 
     <select class="form-control" id="options" name="options" style="width:100%" type="checkbox"> 

      @foreach($t as $t) 
       <option value="{{ $t->id }}">{{ $t->type }}</option> 
      @endforeach 

     </select> 
    </div> 

<div class="col-md-4" id="value" align="center"> 
      <div class="panel panel-warning"> 
       <div class="panel-heading"> 
       Enter text below 
       </div> 

         <div class="form-group has-success"> 
          <textarea class="form-control" id="message" name="message" placeholder="Please enter your message here..." rows="5"></textarea> 
          <input type="submit" class="btn btn-primary" name="n" value="A-N"> 
          <input type="submit" class="btn btn-primary" name="o" value="A-O"> 
         </div> 
       </form> 
      <!--   Notes: <br/>--> 

     </div> 

<script  src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

<script> 

function hide() { 
$("#value").hide(); 
$("#h").hide(); 
$("#search").hide(); 
} 

function show() { 
$("#value").show(); 
$("#h").show(); 
$("#search").show(); 
} 

function initHandlers() { 
$("#options").on('click', function() { 
    show(); 
}); 
} 

hide(); 
initHandlers(); 

</script> 

インタフェース実装

public function getAllTn() { 
    return TN::all(); 
} 

public function getAllTO(){ 
    return TO::all(); 
} 
+0

コレクションを保存しようとしていますか? '$ to'は' TO :: all() 'の結果であり、' Collection'を返すべきです。 –

+0

それはIDと日付時刻と共にテキストエリアのメッセージです 'ユーザID '5'に「これはメッセージです」が追加されました...なぜ私はそれを取得しているのか分かりません... –

+0

私はちょうど –

答えて

1

Modelのインスタンス化の方法が間違っています。

$to = new TO(); 

$to->d_id = $id; 
$to->outcome = Input::get('message'); 
$to->date = $time->toDateTimeString(); 

$to->save(); 
+0

これは確かに機能しますが、ビューに「TA」と「TO」の2つのボタンがあるので、実際に何をしようとしているのかは、ユーザーがクリックすると「TA」ではデータが「TA」テーブルに保存され、ユーザが「TO」をクリックすると、データは「TO」テーブルに格納される。 if(($ _ POST ["n"])&&!empty($ _ POST ["n"])))...あなたはポイントを得ましたか? –

+0

oはいそれは済んでいます...本当に助けてくれてありがとうございました...実際には私はモデルの間違いをインスタンス化していました...私は 'isset'で' new TO'を呼び出し、動作しています...私はこの部分を忘れてしまった...助けてくれてありがとう... :) –

+0

私はこれを受け入れ可能な答えとしてどのように選択できますか? –

0

同じデータを持つすべてのアイテムを更新する必要はありませんか?

モデルフィールドが塗りつぶされている場合は、それらを一括して割り当てることができます。

$data = [ 
    't_type_id' => request()->input('options'), 
    'd_id'  => $id, 
    'result' => request()->input('message'), 
    'date'  => $time->toDateTimeString() 
]; 

TN::update($data); // this will update all TN entries 

TNテーブルのアイテムを1つまたは多く更新する必要があるかどうかはわかりませんか?

関連する問題