вызывающая переменная в блейде из внешнего файла - PullRequest
0 голосов
/ 02 мая 2018

Я заполняю свой HTML-блейд HTML-таблицей, которая заполняется запросами в другом файле.

Все это хорошо, за исключением одной переменной, созданной из основной функции, которая выполняет эти запросы, и я просто пытаюсь вызвать ее из блейда.

Все, что у меня сейчас есть, работает так, что возвращает результаты запроса и упаковывает их, чтобы я мог поместить их в мое представление html. Отображается все, кроме одного столбца, который находится в другой функции в исходном файле.

По сути, мне просто нужно вызвать переменную $ процентов из numbersfile.php в столбец в моем представлении html

NumbersFile.php

function totals(){

    $total = $row['total'];
    $sales = $row['sales'];
    $percent = round( ($total / $sales) * 100, 2 );
    //all of this data is correct

}

report.php

function percentReport($p){

    $data = [];

    $totals = new NumbersFile();
    $totals->doQuery($p[0]);
    $totals->fetchData();

    while ($row = $totals->fetchRow()) {
        $summary[] = $row;
    }
    $data = $summary;
    $wrap['data'] = $data;
    return $wrap; // this returns everything I need from the original query

}

numbers.blade.php

@foreach($data['data'] as $td)
    <tr>
        <td>{{$td['total1']}}</td>
        <td>{{$td['total2']}}</td>
        <td>{{$td['total3']}}</td>
        <td>{{$td['total4']}}</td> <!--These rows show perfectly fine-->
        <td>{{$percent}}</td><!--This is what I need to fill with that variable-->
    </tr>
@endforeach

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Вы можете создать «вспомогательный» файл, у меня обычно есть app / Http / helpers.php, вам нужно добавить его в composer.json

"autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files":["app/Http/helpers.php"]
},

запустить обновление композитора

Вам нужно переместить эту функцию в файл helpers.php или добавить каждый файл внутри компоновщика, функция итогов должна возвращать $ процент, и я думаю, что вам нужно отправить переменные в эту функцию.

а потом на ваш взгляд

{{ totals() }}

Почему у вас есть файл "report.php"? Я думаю, что лучше сделать это на контроллере, а затем отправить его на просмотр.

0 голосов
/ 02 мая 2018

почему бы не использовать @include внутри лезвия?

@include('{your path}/{your file name without .php extension}')

И убедитесь, что $percent доступен вне функции totals( ) (позаботьтесь об инкапсуляции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...