【Laravel】Namespace declaration statement has to be the very first statement or after any declare call in the script のエラー|実例を交えて解説

最終更新日

この記事では、laravelでNamespace declaration statement has to be the very first statement or after any declare call in the script のエラーが出たときの対処方法とエラーの意味を解説します。

経緯

formを作るためにコントローラーファイルを作りルーティング作業をしていたら以下のように怒られた。

エラー内容

Namespace declaration statement has to be the very first statement or after any declare call in the script 

日本語訳

名前空間宣言文は、スクリプト内の最初の文、または宣言呼び出しの後に記述する必要があります。

結論

コントローラーやモデルの先頭で使用されている<?php前に空白や文字が含まれるとこのようなエラーが出ます。

実例

実例①

nanespaceの前にuseを宣言している場合は、nanespaceの後にuseを宣言してください。

<?php
  use ~
 nanespace~

実例②

<?phpの前にスペースがある場合はスペースを消してください。

 <?php
↓
<?php

実例③

<?php nanespace~より上にコメントを書いている場合もエラーになります。

//コメント
<?php
  
  nanespace~

詳しい説明

原因

・namespaceの上に何も書いてはいけない
・<?php の上に何も書いてはいけない
ということのようだ。

エラーが指していたのは、Articleモデルである app/Article.php のファイル。

解決策

app/Article.php の <?php の上に、コメント化したメモを書いていた。
それを <?php の下に移動させてみると、正常に画面表示された。

https://qiita.com/hinako_n/items/b2dde4715f18b8a688cb