gpt4 book ai didi

php - 如何在 Laravel View 中调用类方法?

转载 作者:行者123 更新时间:2023-12-05 08:57:08 25 4
gpt4 key购买 nike

我正在尝试找到一种方法来从 Blade 文件中的类文件中调用方法。 foo() 使用 foreach 循环中的 $item 变量。因为我在 blade 文件中循环,所以我不能,或者更确切地说,在 View 中调用 Controller 方法是一种不好的做法,或者我听说过。

我的 Controller

public function getData() {
$data = DB::paginate(10);
return view('view', ['data' => $data]);
}

public function foo($var) {
//do something with $var
return $var
}

view.blade.php

@foreach ($data as $item)

<td>{{$item->key}}</td>
<td>{{ //myController::foo($item) is Essentially the output I need }} </td>

@endforeach

由于 $item 是在 foreach 中生成的(在 View 内部),我不知道如何调用方法 before它已经过去了返回语句中的 View 。

有什么建议吗?

最佳答案

只需与您的 View 共享您的 Controller :

Controller :

public function getData() {
$data = DB::paginate(10);

return view('view', [
'data' => $data,
'controller' => $this,
]);
}

查看:

@foreach ($data as $item)

<td>{{$item->key}}</td>
<td>{{ $controller->foo($item) }} </td>

@endforeach

更好的方法是在 Controller 中生成输出:

public function getData() {
$data = DB::paginate(10);

$data = array_map(function($item) {
$item->output = $this->foo($item);

return $item;
}, $data);

return view('view', [
'data' => $data,
]);
}

关于php - 如何在 Laravel View 中调用类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36437915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com