wie das Rendern einer Ansicht und speichern Sie den Inhalt in eine Datei die in Laravel
Ich habe eine harte Zeit versucht, etwas sehr trivial, meiner Meinung nach.
Ich möchte einen Blick, Holen Sie sich die string-Inhalt und speichern Sie es in eine xml-Datei
Hier ist ein Beispiel code, was ich versuche, aber es gibt die xml-Ansicht der browser
use Illuminate\Filesystem\Filesystem;
class ExportController extends BaseController {
function getIndex(){
$fs = new Filesystem();
$data = array();
$view = View::make('xml', $data);
$html = $view->render(); //outputs content to the browser
$fs->put("exercise.xml", $html);
}
}
Ich finde keine andere Methode in die Anzeigen-API, um den Inhalt, __toString ruft auch die render-Funktion intern. Bin ich hier etwas fehlt?
BEARBEITEN: dies ist mein vollständiger export controller: ich möchte zu exportieren übungen aus einer Datenbank auf eigenständige html-und XML-Dateien. Die hickup ist an der Unterseite, wo ich Schleife die übungen. Die Ansicht wird ausgegeben, um den browser und die foreach-Stoppt
use Illuminate\Filesystem\Filesystem;
set_time_limit(0);
class ExportController extends BaseController {
function __construct(){
}
function getIndex($methodId = NULL, $exerciseId = NULL){
$base = base_path() . "/export/";
$playerPath = base_path() . "/public/preview/dist/";
$uploadsPath = base_path() . "/public/uploads/";
if($methodId ===NULL && $exerciseId === NULL){
$up = new Exception('Please provide a method-id or an exercise id');
throw $up;
}
//we make an array which holds all the exercises we have to export
$exercises = array();
//get all exercises for given methodId
if($methodId !== NULL){
$method = Method::with('categories.exercises')->find($methodId);
if($method == NULL) break;
foreach($method->categories as $category){
foreach($category->exercises as $exercise){
array_push($exercises, $exercise);
}
}
}
if($exerciseId != null){
$exercise = Exercise::find($exerciseId);
if($exercise != NULL) array_push($exercises, $exercise);
}
if(empty($exercises)){
$up = new Exception('No exercises could be found for given method/exercise');
throw $up;
}
//loop the exercises and publish like a charm
foreach($exercises as $exercise){
//determine destination
$path = $base . $exercise->getPath();
//check if path exists, if it does, wipe it out
$fs = new Filesystem();
if($fs->exists($path)){
$fs->deleteDirectory($path, true);
}
//copy player files
echo "copying " . $path . "<br />";
$fs->copyDirectory($playerPath, $path);
//copy resources
echo "copying resources " . $path . "<br />";
$fs->copyDirectory($uploadsPath . $exercise->id . "/", $path);
//save xml file
$content = Exercise::getXmlContent($exercise->id);
$fs->put($path . "exercise.xml", View::make('xml', $content));
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu erhalten und speichern Sie Ihre html-Sie müssen nur:
$fs->put()
intern verwendet die __toString-Methode der Ansicht, in der die render-Methode des views aufgerufen wirdHabe das problem gefunden, auf der Spitze der template-Datei war eine Linie, die sagte
Führte, dass der Skript-Ausgabe an den browser, ohne zu Fragen für Sie.
Die Vorlage wurde von einer anderen Person geschrieben, so dass ich didn ' T wissen über Sie, aber sicher, ich sollte überprüft haben, bevor Fragen