1

これに関する他の投稿を読んで作業しましたが、ダウンロードしたばかりの Laravel 4 のバージョンでは、JSON 入力がコントローラーによって処理される方法がさらに変更されているようです。

$input = Input::json()->all();PUT リクエストを実行した後にペイロードの一部をリクエストすると、存在しないものを参照しているかのようにエラーが発生します。そして->all();、symfony エラーが発生します。Laravel 4の最新バージョンでバックボーンから適切なJSONを取得する方法を知っている人はいますか?

現在、私は自分のデータを取得するために長い道のりを歩んでいます。

    $input_title = Input::get('title');
        $input_completed = Input::get('completed');

        $task = Task::find($id);
        $task->title = $input_title;
        $task->completed = $input_completed;
        $task->save();

はい、私は laravel/backbone を学ぶために tutsplus のチュートリアルを行っているので、少し初心者の忍耐力が高く評価されています。

使用時に発生するエラーInput::get();: {"error":{"type":"UnexpectedValueException","message":"The Response content must be a string or object implementation __toString(), \"array\" given.", "ファイル":"/Users/brentlawson23/Sites/laravel4App/bootstrap/compiled.php","行":16858}}

直接のphpを使用してペイロードを文字列化するのではなく、Laravel固有の回答を得たいと思っています。

だけを使用して同じエラーが発生しますInput::json();

Laravel 4 の現在のベータ版では、Input::json(); テーブルに新しい行を作成するために使用できる文字列化されたバージョンのリクエスト ペイロードを取得していません。また、Input::json()->all(); も取得していません。(symfony の ParameterBag をうまく使いたいと思っています)。私は他のハックの中で json_encode を試しましたが、基本的にこのツタンカーメンのすべてのステップで、レンガの壁にぶつかりました。私がここで提示したことに基づいて、誰か提案がありますか?

今日、単純に$input = Input::json();{"error":{"type":"ErrorException","message":"Catchable Fatal Error: Object of class Symfony\Component\HttpFoundation\ParameterBag could not be convertの結果をエコーし​​ようとしたときに、これを取得しました/Users/brentlawson23/Sites/laravel4App/app/controllers/TasksController.php 行 45 の文字列に","file":"/Users/brentlawson23/Sites/laravel4App/app/controllers/TasksController.php","line": 45}}

はい、Symfony API について学習しました。

4

2 に答える 2

1

同様の問題がありました。Backboneからの入力はLaravelで配列に変換されます。tutsplus では、Jeffrey Way さんがオブジェクトを使用しています。だから私はこれをやろうとしていました(チュートリアルのように):

return $input->title // using object,but got an error.

その行を次のように変更すると:

return $input["title"] // everything works fine with array.
于 2013-10-31T20:56:07.380 に答える
1

また、tuts+ のバックボーン チュートリアルにも取り組んでいます。新しい連絡先の作成セクションで立ち往生していると思いますか? 以下は、ContactController.php で、どのように機能するようになったかです。

public function store()
{
    $input = Input::all();
    Contact::create(array(
        'first_name' => $input['first_name'],
        'last_name' => $input['last_name'],
        'email_address' => $input['email_address'],
        'description' => $input['description']
    ));
}

そして、 app/models/Contact.php を以下のように更新する必要があります:

class Contact extends Eloquent {
    protected $fillable = array('first_name', 'last_name', 'email_address', 'description');

}

これで作業が完了し、連絡先がデータベースに挿入されます。読み間違えた場合はお知らせください。もう一度確認できます。

乾杯、

ショーン

于 2013-06-03T21:15:57.023 に答える