Я пытаюсь обновить laravel с помощью php excel при установке, я обнаружил приведенное ниже предупреждение в композиторе.
Ошибка:
Warning: Ambiguous class resolution, "SettingsController" was found in both
"C:\xampp\htdocs\mti\app\controllers\SettingsController.php" and
"C:\xampp\htdocs\mti\app\controllers\SettingsControllerBackup.php", the first
will be used.Warning: Ambiguous class resolution, "ClassModel" was found in both
"C:\xampp\htdocs\mti\app\models\ClassModel.php" and "C:\xampp\htdocs\mti\
app\models\LoginModel.php", the first will be used.
SettingsController:
<?php
class SettingsController extends BaseController
{
public function ChangePasswordLayout()
{
return View::make('settings/changepassword/changepassword');
}
public function ChangePasswordProcess()
{
$PasswordData = Input::all();
Validator::extend('pwdvalidation', function($field, $value, $parameters)
{
return Hash::check($value, Auth::user()->password);
});
$messages = array('pwdvalidation' => 'The Old Password is Incorrect');
$validator = Validator::make($PasswordData, User::$rulespwd, $messages);
if ($validator->passes())
{
$user = User::find(Auth::user()->id);
$user->password = Hash::make(Input::get('NewPassword'));
$user->save();
return Redirect::to('changepassword')->withInput()->with('Messages', 'The Password Information was Updated');
} else
{
return Redirect::to('changepassword')->withInput()->withErrors($validator);
}
}
public function ProfileLayout()
{
$user = Auth::user()->id;
$ProfileDetailsbyid = ProfileModel::where('id', $user)->get()->toArray();
return View::make('settings/profile/profile')->with('ProfileDetailsbyid', $ProfileDetailsbyid);
}
public function ProfileUpdateProcess($data=NULL)
{
$user = Auth::user()->id;
$ProfileDetailsbyid = ProfileModel::where('id', $user)->get()->toArray();
$ProfileData = array_filter(Input::except(array('_token')));
$validation = Validator::make($ProfileData, ProfileModel::$rules);
if ($validation->passes())
{
if(!empty($ProfileData['Photo']))
{
Input::file('Photo')->move('assets/uploads/profilephoto/', $user . '-Photo.' . Input::file('Photo')->getClientOriginalName());
$Photo=$user.'-Photo.' . Input::file('Photo')->getClientOriginalName();
unset($ProfileData['Photo']);
$ProfileData['Photo']=$Photo;
}
$affectedRows = ProfileModel::where('id', $user)->update($ProfileData);
//VehicleModel::create($VehicleData);
return Redirect::to('profile')->with('Message', 'Profile Details Update Succesfully')->with('ProfileDetailsbyid', $ProfileDetailsbyid);
} else
{
return Redirect::to('profile')->withInput()->withErrors($validation->messages())->with('ProfileDetailsbyid', $ProfileDetailsbyid);
}
}}
ClassModel:
<?php
class ClassModel extends Eloquent
{
protected $primaryKey = 'AutoID';
protected $created_at = 'CreatedAt';
protected $updated_at = 'UpdatedAt';
protected $table = 'class';
protected $guarded = array('GradeName');
protected $fillable = array('GradeName');
public function batch(){
return $this->hasMany('BatchModel', 'Class');
}
public function studentadmissionresult(){
return $this->hasMany('StudentAdmissionModel', 'StudentCourse');
}
public $timestamps = true;public static $rules = array(
'GradeName' => array('required', 'unique:class','regex:/^./'),
'GradeSection' => 'required',
'GradeCode' => array('required', 'unique:class')
);
public static $updaterules = array(
'GradeName' => array('required','regex:/^./'),
'GradeSection' => 'required',
'GradeCode' => array('required')
);
}
Я следую этому уроку:
https://github.com/Maatwebsite/Laravel-Excel
Я должен попробовать следующую команду:
composer require maatwebsite/excel": "~1.2.1
Это на самом деле не имеет ничего общего с пакетом, который вы устанавливаете.
При воссоздании файлов автозагрузки (composer dump-autoload
) после обновления Composer обнаружил, что у вас есть два класса с одинаковым именем (но в разных файлах).
Учебный класс SettingsController
в SettingsController.php
а также SettingsControllerBackup.php
и класс ClassModel
в ClassModel.php
а также LoginModel.php
Composer затем выберет один из двух вариантов (я не уверен, как он примет это решение, возможно, это только первый вариант, который он найдет) и проигнорирует другое вхождение.
Хорошая и распространенная практика — называть класс как файл. Это простой способ избежать таких коллизий, поскольку два файла в одном каталоге не могут иметь одинаковые имена.
Других решений пока нет …