0

私はLaravelのEloquentを使用していますが、ほとんどの場合問題はありません。しかし今、私は問題にぶつかっていて、それを修正できないようです。Googleには解決策がありません...

$global_data['credentials']     = Company::find(Auth::user()->company_id)->credentials()->first();

View::share('data', $global_data);

会社モデルの関係:

public function credentials(){
  return $this->has_one('credentials');
}

クレデンシャルはすべてのページに「c」をエコーし​​ます。ドキュメントタイプの前に「c」が出力されます。クレデンシャル行を削除すると、「c」が消えます。

ページソース:

c<!DOCTYPE html>
<html lang="nl">
<head>

誰?

4

1 に答える 1

1

正直なところ、Eloquent がこれに関係しているとは思えませんが、コードのどこかに不運な "c" が含まれている可能性があります。これはよくあることで、厄介なマウス チェイス (この場合は "c") で解決できます。

これの考えられる原因の 1 つは、 で始まるc<?phpか終わる?>cファイルで、通常は Autoloader (モデル、ライブラリ、およびバンドル) を介してロードされるファイルです。

クレデンシャル モデル ファイルの先頭にあると思いますが、別の場所にある可能性もあります。$global_data['credentials'] = ....Credential.php にない場合は、その行の構築に関連するものを段階的に追加することで、それを見つけることができます。

  1. ハードコードされた資格情報を試してください。「c」が表示されない場合は、おそらく会社または認証ファイルからのものです。
  2. 次に、 Company::find($1)->credentials() を実行してみてください。「c」が表示されない場合は、おそらく Auth または User (Auth に含まれています) にあります。
  3. 見つかるまでやり続けてください。

編集:

これは、Autoloader がファイルをインクルードすると、PHP が古いスタイルの PHP で行うように、または他のビューと同じようにそれを解析するために発生します。

ファイルが前後に空白行や文字<?php?>ない場合、Laravel のビュー レンダリングまで何も出力されません。ただし、これらのファイルのいずれかに出力がある場合は、PHP の出力バッファーに入り、ビューの前にレンダリングされます。

これらの非出力ファイルを常に<?php最初の行で開き、決して閉じないことをお勧めし?>ます。

于 2013-03-06T19:45:41.417 に答える