2017-02-25 16 views
1

私はオブジェクトとして取得する必要がある列にJSONを含むテーブルを持っています しかし、私はlaravelモデルを使用してデータをプルすると、明らかにJSONまたは文字列を返します。 (これは乾いたコンセプトではありませんが)レコードと1つの場所をプルするとコードとOKが1回だけ実行されますが、データと複数の場所のコレクションを取得する必要がある場合、同じデコードを実行する必要があります毎回ではなく、ここで自作ループlaravel5を使用してデータmysqlからjsonデータをオブジェクトとして取得する方法は?

を使用しての私のために何ができるlaravelのいずれかの方法は、テーブル

+-----------------------------------------------------------------------------+ 
|         table          | 
+-----------------------------------------------------------------------------+ 
|id | title | text               | 
+-----------------------------------------------------------------------------+ 
| 1 | A1 | {"subject":"Subject1","word":"Lorem ipsum dolor sit amet, ..."} | 
| 2 | A2 | {"subject":"Subject2","word":"Lorem ipsum dolor sit amet, ..."} | 
| 3 | A3 | {"subject":"Subject3","word":"Lorem ipsum dolor sit amet, ..."} | 
| 4 | A4 | {"subject":"Subject4","word":"Lorem ipsum dolor sit amet, ..."} | 
| 5 | A5 | {"subject":"Subject5","word":"Lorem ipsum dolor sit amet, ..."} | 
| 6 | A6 | {"subject":"Subject6","word":"Lorem ipsum dolor sit amet, ..."} | 
| 7 | A7 | {"subject":"Subject7","word":"Lorem ipsum dolor sit amet, ..."} | 
| 8 | A8 | {"subject":"Subject8","word":"Lorem ipsum dolor sit amet, ..."} | 
| 9 | A9 | {"subject":"Subject9","word":"Lorem ipsum dolor sit amet, ..."} | 
| 10| A10 | {"subject":"Subject10","word":"Lorem ipsum dolor sit amet..."} | 
+-----------------------------------------------------------------------------+ 
でありより効率的であり、その後、乾燥 に従っていることへの簡単な方法があれば、私は私が

Array 
(
    [0] => stdClass Object 
     (
      [id] => 1 
      [title] => A1 
      [text] => stdClass Object 
       (
        [subject] => Subject1 
        [word] => Lorem ipsum dolor sit amet... 
       ) 

     ) 

    [1] => stdClass Object 
     (
      [id] => 2 
      [title] => A2 
      [text] => stdClass Object 
       (
        [subject] => Subject2 
        [word] => Lorem ipsum dolor sit amet... 
       ) 

     ) 

    ... 
) 

何をしたい、この

$tables = TableModel::all(); 
foreach ($tables as &$table) { 
    $table->text = json_decode($table->text); 
} 


の検索結果を試してみました

共有させてください。

ありがとうございます。

+0

私はモデルを呼び出し、それをループし、 'json_decode()'を使ってオブジェクトを上書きします – User97798

答えて

1

Attribute Castingコンセプトを使用すると、データベースからレコードを取得するたびに、目的のフォーマットで結果を取得できます。 JSONをArrayに変換するには、次のコードを使用します。

protected $casts = [ 
    'text' => 'array', 
]; 

Official Documentationのように。

+0

ありがとう:)これは私に多くの助けとなり、その日を救いました – User97798

関連する問題