gpt4 book ai didi

php - Laravel 返回 View 不发送数据,但回显 View 有效

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:15 24 4
gpt4 key购买 nike

我偶然发现了一个相当奇怪的问题。 return view('myview', $data); 适用于除了一组唯一的路由参数之外的所有内容。例如,如果我调用:

http://example.com/category/692/626/0

View 按预期返回。但是,如果我打电话:

http://example.com/category/692/528/0

我收到以下消息:

This page isn’t working

example.com didn’t send any data.
ERR_EMPTY_RESPONSE

如果我然后在 Controller 末尾回显 View :

echo view('myview', $data);

一切都按预期进行。

在检查 nginx error.log 时,我发现发生这种情况时正在写入以下行:

2017/11/03 13:12:03 [alert] 498#0: *94 header already sent while sending response to client, client: 0.0.0.0, server: example.com, request: "GET /category/692/528/0 HTTP/1.1", subrequest: "/inc/footer.htm", host: "example.com"

只有当我尝试从 Controller 返回一组特定参数的 View 时,我才感到困惑,这怎么可能发生。如果此错误一直发生会更有意义。

我开始通过删除返回的记录来调试这个问题,删除一个特定的记录解决了这个问题,但是这条记录和任何其他返回的记录之间似乎没有任何区别(检查隐藏字符,没有与众不同)。

过去有人遇到过这个问题吗?有谁知道可能导致这种情况的原因吗?

编辑

根据要求编写以下代码。它相当基础,只需获取数据、呈现 View 并返回它。

/* ROUTE in web.php
------------------------------------------------------*/
Route::get('/category/{category}/{subcategory}/{subsubcategory}', 'SearchController@category_search');


/* CONTROLLER FUNCTION
------------------------------------------------------*/
public function category_search($category_id, $subcategory_id, $subsubcategory_id, Request $request){

// search_users() obtains resultset of users based on parameters passed.
$users = $this->search_users($category_id, '', '', '');

$data = array(
'users' => $users
);

// Data is obtained successfully and everything working as expected at this point
// echo '<pre>';
// echo var_export($data, true);
// echo '</pre>';
// die;

//echo view('search/categories', $data); <-- This works
return view('search/categories', $data); // <-- This does not

}

最佳答案

我已经设法纠正了这个问题,但我完全不相信这是一个可靠的解决方案。我什至不确定它是如何解决这个问题的。如果其他人知道为什么会这样,请告诉我。

在 .blade 文件中显示成员的原始循环如下:

@if(count($members) > 0)

@php $count = 0; @endphp
@foreach($members as $member)
@php $count++; @endphp
<div class="well {{($count % 2 == 0) ? 'results-well-even' : 'results-well-odd'}}">
<a href="/members/{{$member->id}}">{{$member->name}}</a>
<br/>
<span class="hometown">
{{$member->city}}, {{$member->state}}
</span>
<br/>
@if((property_exists($member, "distance")))
<span class="distance">
Distance: {{$member->distance}} miles
</span>
@endif
</div>

@endforeach

@else



@endif

修改后的循环如下:

@if(count($members) > 0)

@php $count = 0; @endphp
@foreach($members as $member)
@php $count++; @endphp
<!-- LINE BREAK ADDED HERE -->
<div class="well {{($count % 2 == 0) ? 'results-well-even' : 'results-well-odd'}}">
<a href="/members/{{$member->id}}">{{$member->name}}</a>
<br/>
<span class="hometown">
{{$member->city}}, {{$member->state}}
</span>
<br/>
@if((property_exists($member, "distance")))
<span class="distance">
Distance: {{$member->distance}} miles
</span>
@endif
</div>

@endforeach

@else



@endif

从字面上看,唯一改变的是换行符。我对此感到困惑。有谁知道为什么这解决了这个问题,因为如果是这样,您应该得到答案!

关于php - Laravel 返回 View 不发送数据,但回显 View 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096803/

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