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));
        }
    }

}
InformationsquelleAutor Ernie | 2013-10-08
Schreibe einen Kommentar