为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用雄辩的“with”传递多个数组的数组进行循环

如何使用雄辩的“with”传递多个数组的数组进行循环

PHP
千万里不及你 2022-08-05 16:08:05
我正在尝试创建一个页面,该页面在单个SQL表中具有不同的过滤行。在过去的几个小时里,我一直在尝试和搜索,看看如何使用“with”为多个数组提供视图,我将直接发布代码,以便它可以更好地了解我正在尝试做的事情。由于每个数组使用不同的SQL参数,我不确定如何将它们全部收集到单个变量中,所以我决定将其作为数组传递<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Activity;class ActivityController extends Controller{    public function index (){        $activities[] = [            'yearlies' => Activity::all()                ->where('activity_feature_type', 'yearly')                ->sortByDesc('activity_daily_budget')                ->take(6),            'monthlies' => Activity::all()                ->where('activity_feature_type', 'monthly')                ->sortByDesc('activity_daily_budget')                ->take(4),            'weeklies' => Activity::all()                ->where('activity_feature_type', 'weekly')                ->sortByDesc('activity_daily_budget')                ->take(4),        ];        return view('activities')->with('activities', $activities);    }}在客户端,我想遍历每个变量,将它们放入每个 UL 中<div class="row pt-2">            @if(count($yearlies) > 0)                @foreach($activities['yearlies'] as $yearly)                    <div class="col-sm-2">                        <div class="card" style="width: 18rem;">                            <img class="card-img-top" src="img/{{$yearly->activity_picture_link}}" alt="Card image cap">                            <div class="card-body">                                <h5 class="card-title">{{$yearly->name}}</h5>                                <p class="card-text">{{$yearly->activity_desc_short}}</p>                            </div>                            <ul class="list-group list-group-flush">                                @if ($yearly->activity_free === true)                                    <li class="list-group-item"><h6 class="font-weight-bold">Free</h6></li>                                @else希望我能做什么有点明显。无论如何,我一直在搜索,我所看到的只是关于集合的东西,但我没有亲自定义不同的子值,所以我不能利用=>功能。任何帮助是值得赞赏的。
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

当您在一个数组变量中发送值时,这意味着它是多维数组。


另外,而不是


$activities[] = [

            'yearlies' => Activity::all()

                ->where('activity_feature_type', 'yearly')

                ->sortByDesc('activity_daily_budget')

                ->take(6),

            'monthlies' => Activity::all()

                ->where('activity_feature_type', 'monthly')

                ->sortByDesc('activity_daily_budget')

                ->take(4),

            'weeklies' => Activity::all()

                ->where('activity_feature_type', 'weekly')

                ->sortByDesc('activity_daily_budget')

                ->take(4),

        ];


$activities = [

            'yearlies' => Activity::all()

                ->where('activity_feature_type', 'yearly')

                ->sortByDesc('activity_daily_budget')

                ->take(6),

            'monthlies' => Activity::all()

                ->where('activity_feature_type', 'monthly')

                ->sortByDesc('activity_daily_budget')

                ->take(4),

            'weeklies' => Activity::all()

                ->where('activity_feature_type', 'weekly')

                ->sortByDesc('activity_daily_budget')

                ->take(4),

        ];

这将降低数组的复杂性。


另外,在您的文件中 -blade



<div class="row pt-2">

            @if(isset($activities) || $activities!= null)

                @foreach($activities['yearlies'] as $yearly)

                    <div class="col-sm-2">

                        <div class="card" style="width: 18rem;">

                            <img class="card-img-top" src="img/{{$yearly->activity_picture_link}}" alt="Card image cap">

                            <div class="card-body">

                                <h5 class="card-title">{{$yearly->name}}</h5>

                                <p class="card-text">{{$yearly->activity_desc_short}}</p>

                            </div>

                            <ul class="list-group list-group-flush">

                                @if ($yearly->activity_free === true)

                                    <li class="list-group-item"><h6 class="font-weight-bold">Free</h6></li>

                                @else

                                    <li class="list-group-item"><h6 class="font-weight-bold">${{$yearly->activity_low_cost}} - ${{$yearly->activity_high_cost}}</h6></li>

                                @endif

                            </ul>

                            <div class="card-body">

                                <a href="/activities/{{$yearly->id}}" class="card-link">View Activity</a>

                                <a href="/" class="card-link float-right">Save</a>

                            </div>

                        </div>

                    </div>

                @endforeach

            @else

                <h5 class="text-secondary text-center">No yearlies available</h5>

            @endif

        </div>


我想这会很好。如果我错了,请纠正我。希望这对你有用。


查看完整回答
反对 回复 2022-08-05
?
翻阅古今

TA贡献1780条经验 获得超5个赞

div class="row pt-2">

            @if(count($yearlies) > 0)

                @foreach($activities->yearlies as $yearly)

                    <div class="col-sm-2">

                        <div class="card" style="width: 18rem;">

                            <img class="card-img-top" src="img/{{$yearly->activity_picture_link}}" alt="Card image cap">

                            <div class="card-body">

                                <h5 class="card-title">{{$yearly->name}}</h5>

                                <p class="card-text">{{$yearly->activity_desc_short}}</p>

                            </div>

                            <ul class="list-group list-group-flush">

                                @if ($yearly->activity_free === true)

                                    <li class="list-group-item"><h6 class="font-weight-bold">Free</h6></li>

                                @else

                                    <li class="list-group-item"><h6 class="font-weight-bold">${{$yearly->activity_low_cost}} - ${{$yearly->activity_high_cost}}</h6></li>

                                @endif

                            </ul>

                            <div class="card-body">

                                <a href="/activities/{{$yearly->id}}" class="card-link">View Activity</a>

                                <a href="/" class="card-link float-right">Save</a>

                            </div>

                        </div>

                    </div>

                @endforeach

            @else

                <h5 class="text-secondary text-center">No yearlies available</h5>

            @endif

        </div>


查看完整回答
反对 回复 2022-08-05
  • 2 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信