PHP PHP - string to Class illegal string offset

-Rayz-

Lieutenant
Registriert
Okt. 2010
Beiträge
902
Guten Tag und Hallo :)

ich habe hier Lokal ein Laravel Projekt welches ich nun beim Hoster aufn Server hochgeladen habe und habe nun folgendes Problem:

PHP:
if ($class[$relation] !== null) {
    $model = join(DIRECTORY_SEPARATOR, array('App', ucfirst($relation)));
    $newModel = new $model($probe[$relation]);
    $newModel->save();
    $newClass->GetBelongsTo($model, $id)->associate($newModel)->save();
}

public function GetBelongsTo($model, $id) {
    return $this->belongsTo($model,$id);
}

Meine Schleife kommt an den oben stehenden Code und weil ich nicht alle (mittlerweile 53 Klassen) manuell abfragen will, erstell ich mir die Klasse anhand vom Request und wandel den string in eine Klasse um. Lokal klappt das auch wunderbar..
Auf dem Live Server aber denke ich kann die Klasse nicht gefunden werden. Wenn ich die Klasse manuell angebe und $model sowie $newModel auskommentiere, kommt auch kein Fehler.
Die Fehlermeldung sagt leider nichts aus

PHP:
exception: "ErrorException"
file: "/is/htdocs/wp12979348_PGII2LLJH8/www/..../laravel/vendor/lanin/laravel-api-debugger/src/Debugger.php"
line: 118
message: "Illegal string offset 'debug'"

An anderer Stelle wo ich den Code benutze kommt zumindest "message: "Class 'App/BeispielKlasse' not found" "

Muss ich den Pfad irgendwie/irgendwo anders angeben oder wo könnte hier der Fehler liegen?

Vielen Dank im voraus
Ergänzung ()

Oh Herr.. lass Hirn regnen...
Code:
 $model = join(DIRECTORY_SEPARATOR, array('App', ucfirst($relation)));
 
 
 $model = join('\\', array('App', ucfirst($relation)));

Problem gelöst... -_-
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: marcmurc
Hi,
Magic values sollten vermieden werden.
"App" sieht für mich wie der Namespace aus, sollte also durch "NAMESPACE" ersetzt werden.
 
Lass mich mal raten. Lokal arbeitest du mit Windows?
DIRECTORY_SEPARATOR ist unter Windows ein Backslash (\), unter Linux aber ein Slash (/).
Der Namespace Seperator in PHP ist aber immer ein Backslash, daher funktioniert der Code unter Windows aber nicht unter Linux.
 

Ähnliche Themen

Antworten
4
Aufrufe
2.459
claW.
C
Zurück
Oben