【问题标题】:How to get/input id from another field?如何从另一个字段获取/输入 id?
【发布时间】:2019-09-11 10:22:29
【问题描述】:

在那之前,我想做一个像谷歌教室这样的网络应用程序。 (在本例中为加入课堂部分)。

我的代码的结果是:

“类 Illuminate \ Database \ Eloquent \ Builder 的对象不能 转成字符串"

查看:

                <form action="{{ route('user.classroom.joinclassroom') }}">
                    @csrf
                    <label class="sr-only">Classroom Code</label>
                    <div class="input-group">
                      <input method="post" type="text" name="classroom_code" class="form-control" placeholder="eg.XIRPL301 | Max 8 Char/Num" aria-label="Recipient's username" aria-describedby="basic-addon2">
                      <div class="input-group-append">
                        <button name="submit" class="btn btn-sm btn-gradient-primary" type="submit">Search</button>
                      </div>
                    </div>
                </form>

@foreach($classrooms->chunk(4) as $items)
          <div class="row">
            @foreach($items as $p)
              <div class="col-md-4 stretch-card grid-margin">
                <div class="card bg-gradient-danger card-img-holder text-white">
                  <div class="card-body">
                    <img src="{{ asset('classofus_resource/images/dashboard/circle.svg') }}" class="card-img-absolute" alt="circle-image"/>
                    <h4 class="font-weight-normal mb-3">{{ $p->name }}
                      <i class="mdi mdi-account-multiple mdi-24px float-right"></i>
                    </h4>
                    <h4 class="mb-5" data-toggle="tooltip" title="{{ $p->description }}">{{ str_limit($p->description, 32) }}</h4>
                    <form method="post" action="{{ route('user.classroom.joinclassroombutton') }}">
                      @csrf
                      <button type="submit" name="submit" class="btn btn-gradient-primary btn-sm">Join</button>
                    </form>
                  </div>
                </div>
              </div>
            @endforeach
          </div>
        @endforeach

关系:

多对多

注册控制器:

    public function searchclassroom(Request $request)
    {
        $this->cari = $request -> classroom_code;

        $classrooms = Classroom::wherein('classroom_code', [$this->cari]) -> get();

        return view('pages.user.classroom.joinclassroom',['classrooms' => $classrooms]);
    }
    /* --------------------------------------- End Of Search Classroom -------------------------------------------- */

    /* --------------------------------------- Join Classroom Button ----------------------------------------- */
    public function joinclassroombutton(request $request)
    {
        $enrollment = Enrollment::create([
            "classroom_id" => Classroom::select('id')->where('classroom_code', $this->cari),
            'user_id' => Auth::user()->id
        ]);

    }

重点是,使用classic_code 获取具有值的教室ID 的语法是怎样的?请帮帮我...

【问题讨论】:

  • 更改为Classroom::select('id')-&gt;where('classroom_code', $this-&gt;cari)-&gt;first()
  • 试试pluck()....

标签: php laravel eloquent laravel-blade


【解决方案1】:

问题就在这里,您在哪里获取了您的教室 ID。您想获取 ID,但您已经获得了 Builder 实例

"classroom_id" => Classroom::select('id')->where('classroom_code', $this->cari), // Builder

所以,你可以试试:

"classroom_id" => Classroom::where('classroom_code', $this->cari)->first()->id, // just id of your model

【讨论】:

  • Result = "试图获取非对象的属性 'id'"。 | :-(
  • 这意味着在Classroom::where('classroom_code', $this-&gt;cari) 你没有教室。所以,防止它。检查$this-&gt;cari
  • 是的,没错!!通过将加入系统更改为与 Google 课堂相同来解决。谢谢罗曼。抱歉花了点时间,我刚从 Windows 10 迁移到 Manjaro Linux……现在我的笔记本电脑非常流畅和快速。 | :-D |
猜你喜欢
  • 2020-06-07
  • 2019-10-26
  • 1970-01-01
  • 2016-10-30
  • 1970-01-01
  • 2012-07-24
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多