[解決済み] レスポンスの内容は文字列または __toString() を実装したオブジェクトでなければならず、 psql に移行した後に "boolean" が与えられる。
質問
LaravelアプリをMySQLからpSQLに移行した途端。このエラーが出続けています。
レスポンスの内容は、文字列または __toString(), "boolean" を実装したオブジェクトが指定されている必要があります。
私のプロモーションを返すAPIがあります。
http://localhost:8888/api/promotion/1
public function id($id){
$promotion = Promotion::find($id);
dd($promotion); //I got something here
return $promotion;
}
以前は私のプロモーションが返されていましたが、今はエラーが返されています。
dd($promotion)です。
I got
Promotion {#410 ▼
#table: "promotions"
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:16 [▼
"id" => 1
"cpe_mac" => "000D6721A5EE"
"name" => "qwrqwer"
"type" => "img_path"
"status" => "Active"
"heading_text" => "qwerq"
"body_text" => "werqwerqw"
"img" => stream resource @244 ▶}
"img_path" => "/images/promotion/1/promotion.png"
"video_url" => ""
"video_path" => ""
"account_id" => 1001
"img_url" => ""
"footer_text" => "qwerqwerre"
"created_at" => "2016-08-04 10:53:57"
"updated_at" => "2016-08-04 10:53:59"
]
#original: array:16 [▶]
#relations: []
#hidden: []
#visible: []
#appends: []
#fillable: []
#guarded: array:1 [▶]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
コンテンツ
__ この件に関するヒントや提案があれば、とても助かります。
解決方法は?
TL;DR
戻るだけ
response()->json($promotion)
は、この問題の問題を解決しません。
$promotion
はEloquentオブジェクトで、Laravelはこれを自動的にjson_encodeして応答します。jsonエンコードに失敗しているのは
img
プロパティは PHP のストリームリソースであり、エンコードすることはできません。
詳細
コントローラから何を返しても、Laravelは文字列に変換しようとします。オブジェクトを返した場合、そのオブジェクトの
__toString()
マジックメソッドが呼び出され、変換が行われます。
したがって、単に
return $promotion
をコントローラアクションから呼び出すと、Laravel は
__toString()
を表示するための文字列に変換します。
その上で
Model
,
__toString()
コール
toJson()
の結果を返します。
json_encode
. したがって
json_encode
が返されます。
false
つまり、エラーが発生しているのです。
あなたの
dd
は、あなたの
img
属性は
stream resource
.
json_encode
をエンコードすることはできません。
resource
ということで、これが失敗の原因になっていると思われます。そのため、おそらくこれが失敗の原因です。
img
属性に
$hidden
プロパティから削除します。
json_encode
.
class Promotion extends Model
{
protected $hidden = ['img'];
// rest of class
}
関連
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】pdo - 非オブジェクトのメンバー関数prepare()への呼び出し【重複】。
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない