【问题标题】:use multiple for loops in a td element in laravel在 laravel 的 td 元素中使用多个 for 循环
【发布时间】:2018-07-02 02:29:28
【问题描述】:

大家好,我有 3 个雄辩的表成员,即承诺和活动,它们之间有关系,即: 对于成员模型

 protected $table = "members";

public function loans()
{
    return $this->hasMany(Loan::class, 'borrower_id', 'id');
}

public function user()
{
    return $this->hasOne(User::class, 'id', 'user_id');
}

public function pledges()
{
    return $this->hasMany(Pledge::class, 'member_id', 'id');
}

用于广告系列

    protected $table = "campaigns";

    public function pledges()
    {
        return $this->hasMany(Pledge::class, 'campaign_id', 'id')->orderBy('created_at', 'desc');
    }
}

那么对于质押模型

protected $table = "pledges";

    public function campaign()
    {
        return $this->hasOne(Campaign::class, 'id', 'campaign_id');
    }


    public function member()
    {
        return $this->hasOne(Member::class, 'id', 'member_id');
    }
}

在 plegde.create.blade 中

<div class="control-group">
                                     <label class="control-label">Member</label>
                  <div class="controls">
                    <select>
                       @foreach ($member as $members)
                        <option>{{ $members->first_name }}</option>
                        @endforeach
                    </select>
                  </div>
                </div>

            <div class="control-group">

                <label class="control-label">Campaign</label>
                  <div class="controls">
                    <select>
                      @foreach ($campaign as $campaigns)
                      <option>{{ $campaigns->name }}</option>
                      @endforeach
                    </select>
                  </div>
                </div>

              <div class="control-group">
                <label class="control-label">Amount</label>
                <div class="controls">
                  <input type="number" name="amount" id="required" value="{{ old('amount') }}">
                      @if ($errors->has('amount'))
                                <p class="alert alert-danger">{{ $errors->first('amount') }}

                    @endif
                </div>
              </div>
               <div class="control-group">
              <label class="control-label">Date (mm-dd)</label>
              <div class="controls">
                <div  data-date="2012-11-02" class="input-append date datepicker">
                  <input type="text"  name="date" value="2012-11-02"  data-date-format="yyyy-mm-dd" class="span11"  value="{{ old('date') }}">
                      @if ($errors->has('date'))
                              <p class="alert alert-danger">{{ $errors->first('date') }}

                    @endif
                  <span class="add-on"><i class="icon-th"></i></span> </div>
              </div>
            </div>

            <div class="control-group">
                <label class="control-label">Description</label>
                <div class="controls">
                  <input type="text" name="notes" id="required" value="{{ old('notes') }}">
                      @if ($errors->has('notes'))
                              <p class="alert alert-danger">{{ $errors->first('notes') }}

                    @endif
                </div>
              </div>
              <div class="form-actions">
                <input type="submit" class="btn btn-success">
              </div>
        </form>

然后在我的承诺.index.blade.php 我有这个但它没有正确显示这是代码

<div class="widget-content nopadding">
        <table class="table table-bordered data-table">
          <thead>
            <tr>
              <th>#ID</th>
              <th>Campaign</th>
              <th>Member</th>
              <th>Amount</th>
              <th>Date</th>
              <th>Notes</th>
              <th>Action</th>
            </tr>
          </thead>
          <tbody>


            <tr class="gradeX">
               @foreach ($member as $members)
                  <td>{{ $members->first_name }}</td>
                @endforeach


             @foreach ($campaign as $campaigns)
                <td>{{ $campaigns->name }}</td>
               @endforeach


             @foreach ($pledge as $pledges)
                <td>{{ $pledges->amount }}</td>
               @endforeach


            @foreach ($pledge as $pledges)
                <td>{{ $pledges->date }}</td>
               @endforeach

             </tr>
          </tbody>
        </table>
      </div>

任何帮助将不胜感激。

这些是控制器 广告系列控制器

    use App\Campaign;
use Illuminate\Http\Request;

class CampaignController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $campaign = Campaign::all();
        return view('campaign.index', compact('campaign'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('campaign.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
            'name'=>'required',
            'goal'=> 'required',

        ]);



        // return $request->all();

            $campaign = new Campaign;
            $campaign->name = $request->name;
            $campaign->goal = $request->goal;
            $campaign->notes= $request->notes;
            $campaign->save();

            return redirect (route('campaign.index'));
    }

PLedge 控制器

    use App\Campaign;
use App\Member;
use App\Pledge;
use Illuminate\Http\Request;

class Pledgecontroller extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {   

        $member= Member::all();
        $campaign= Campaign::all();
        $pledge= Pledge::all();
        return view ('pledges.index', compact ('member', 'campaign', 'pledge'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $member= Member::all();
        $campaign= Campaign::all();
        $pledge= Pledge::all();
        return view ('pledges.create', compact ('member', 'campaign', 'pledge'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $pledge= new Pledge;
        $pledge->member_id = $request->member_id;
        $pledge->campaign_id = $request->campaign_id;
        $pledge->amount = $request->amount;
        $pledge->date = $request->date;
        $pledge->notes = $request->notes;
        $pledge->save();

        return redirect (route('pledge.index'));
        // return $request->all();
    }

会员控制器

    use App\Member;
use Illuminate\Http\Request;

class MemberController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $member = Member::all();
        return view('member.index', compact('member'));
        // return view ('member.data');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {

        return view ('member.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
         $this->validate($request, [
            'first_name'=> 'required',
            'middle_name'=>'required',
            'last_name'=>'required',
            'gender'=> 'required',
            'marital_status'=> 'required',
            'status'=> 'required',
            'mobile_phone'=> 'required',
            'address'=> 'required',
            'email'=> 'required',
            'dob'=> 'required',
            'photo'=> 'required | image|mimes:jpeg,png,jpg,gif,svg|max:700',
        ]);


        if ($request->hasFile('photo')) {
            // $request->photo->store('public');
            $imageName= $request->photo->store('public');
        }

        $member = new Member;
        $member->first_name = $request->first_name;
        $member->middle_name = $request->middle_name;
        // $member->photo = $request->photo;
        $member->photo = $imageName;
        $member->last_name = $request->last_name;
        $member->gender = $request->gender;
        $member->marital_status = $request->marital_status;
        $member->status = $request->status;
        $member->mobile_phone = $request->mobile_phone;
        $member->address = $request->address;
        $member->email = $request->email;
        $member->dob = $request->dob;
        $member->save();

        return redirect (route('member.index'));
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $member = Member::where('id', $id)->get();
        return view ('member.edit', compact('member'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
          $this->validate($request, [
            'first_name'=> 'required',
            'middle_name'=>'required',
            'last_name'=>'required',
            'gender'=> 'required',
            'marital_status'=> 'required',
            'status'=> 'required',
            'mobile_phone'=> 'required',
            'address'=> 'required',
            'email'=> 'required',
            'dob'=> 'required',
            'photo'=> 'required | image|mimes:jpeg,png,jpg,gif,svg|max:700',
        ]);


        if ($request->hasFile('photo')) {
            // $request->photo->store('public');
            $imageName= $request->photo->store('public');
        }

        $member = Member::find($id);
        $member->first_name = $request->first_name;
        $member->middle_name = $request->middle_name;
        // $member->photo = $request->photo;
        $member->photo = $imageName;
        $member->last_name = $request->last_name;
        $member->gender = $request->gender;
        $member->marital_status = $request->marital_status;
        $member->status = $request->status;
        $member->mobile_phone = $request->mobile_phone;
        $member->address = $request->address;
        $member->email = $request->email;
        $member->dob = $request->dob;
        $member->save();

        return redirect (route('member.index'));
        // return $request->all();
    }

【问题讨论】:

  • 发布您的控制器代码
  • 没有正常显示是什么意思??
  • 您试图将所有列填入单行,但您的表头只承诺 7 列
  • 已经添加了控制器@Sapnesh Naik

标签: laravel eloquent relationship foreach-loop-container


【解决方案1】:

这不是一个好的解决方案。相同的表,不同的模型,不同的 foreachs。 你可以只做一个 foreach 和 function。像这样:

public function memberFunction()
{
    return $this->hasOne('App\Member');
}

//

 public function campaignFunction()
{
    return $this->hasOne('App\Campaign');
}

我们将连接作为一个函数。现在在 foreach 中使用带有 [' '] 标签的函数。

@foreach ($example as $examples)
<td>{{ $examples->memberFunction['firstname'] }}</td>
<td> {{ $examples->campaignFunction['name'] }} </td>
@endforeach

你可以这样继续。

【讨论】:

  • $example 变量未定义,即报错
猜你喜欢
  • 2018-02-06
  • 2020-06-11
  • 1970-01-01
  • 2015-07-17
  • 2014-10-19
  • 2020-06-24
  • 2019-09-16
  • 2019-03-29
  • 2014-02-05
相关资源
最近更新 更多