クラス名重複してるよ〜のエラーメッセージが出る場合...
①対処法
1:本当に記述している文字列が正しいか確認する
2:namespaceの階層が正しいか確認する(\App\Models\temp...)
3:asで別名を付与(詳細は以下参照)
②それ以外の場合 とは?
あまり多くないパターンだと思いますが、自分が修正を担当しているプロジェクトのModelsの階層がこんな感じでした。
\APP
\temp.php(フルパス:\APP\temp.php)
\Models
\temp.php(フルパス:\APP\Models\temp.php)
最初見た時、Laravelはこんなふうになってるのかーと思って特に気にしませんでした。
(Eloquentモデルと通常のModelなので役割はそもそも違います)
が、後々機能を追加するとなったときになって困りました。
use APP\Model\Temp
use APP\Temp
Cannot declare class〜〜〜〜, because the name is already in use
これはNGなんですね...。
記述や文字列の誤りがない、階層が違う、としても同名だとそもそもインポートNGのようです。
use APP\Model\Temp
use APP\Temp as eloquent_temp
こんな感じに別名であれば解決します。
なので正確には同名クラスからのインポートがNGというわけではないです。
※そもそも3のパターンは命名の時点でおかしいので、Eloquentモデルの作成時にはmodelと同名にするべきではないです!