繁体   English   中英

如何获取artworkrequests表的ID而不是我加入的表的ID

[英]How do I get the Id of artworkrequests table instead of the id of the table where I join with

艺术品控制器:

$leads = Artworkrequest::join('artworks', 'artwork_id', '=', 'artworks.id')->where('artworks.user_id', auth()->user()->id)->get();

我想要做的是通过传递 {{$lead->id}} 来删除 Artworkrequest,但问题是它选择了表艺术品的 id 而不是artworkrequest 的 id。 我怎样才能在我的刀片中传递艺术作品请求的 id?

Lead.blade.php:

@foreach($leads as $lead)
                            <tr>
                                <td>
                                <img src="{{ asset('uploads/artworks') }}/{{$lead->picture }}" width="100px" style="width: 100px" alt="">
                                </td>
                                <td>{{ $lead->title }}</td>
                                <td>
                                    <a href="{{ route('lead.view', [$lead->user_id]) }}"><button class="btn btn-dark">bekijk contactgegevens</button></a>
                                </td>
                                <td>
                                    <a href="{{ route('delete.lead', [$lead->id])}}"><button class="btn btn-success">Delete</button></a>

                                </td>
                                <td>        
                                    <form action="{{ route('lead.delete') }}" method="POST">
                                    @csrf
                                    
                                        <input type="hidden" name="id" value="{{$lead->id}}">
                                        <button type="submit" class="btn btn-danger">delete</button>
                                    </form>
                                </td>
                            </tr>


@endforeach

对于这个例子,为什么不使用 Eloquent Relation 而不是 join?

To Do eloquent关系,您必须在各自的模型中定义关系。

艺术品.php

class Artwork extends Model
{

    public function artworkRequest()
    {
        return $this->hasMany(ArworkRequest::class);
    }
}

ArtworkRequest.php

class ArtworkRequest extends Model
{

    public function artwork()
    {
        return $this->belongsTo(ArworkRequest::class);
    }
}

然后在 ArtworkController.php 中,您可以通过这种方式获取数据。 如果您也不需要艺术品数据,则不必包含with('artwork')

$leads = ArtworkRequest::with('artwork')->whereHas('artwork', function($q) {
    $q->where('user_id', auth()->user()->id);
})->get();

然后在刀片文件中,您可以使用

@foreach($leads as $lead)
{{ $lead->id }}

// additionally, you can also call Artwork data by using
{{ $lead->artwork->name }}
@endforeach

控制器:

public function lead()
    {
        $user = auth()->user()->id;
        $leads = Artworkrequest::with('artwork', 'profile')->get();
        return view('artworks.leads', compact('leads'));
    } 

和blade.php:

                        @foreach($leads as $lead)
                        @if(Auth::user()->id == $lead->artwork->user_id )
                        <tr>
                           {{$lead->artwork->user_id }}
                           {{ $lead->id }}

                           {{ $lead->artwork_id }}
                           {{ $lead->user_id }}
                           <td>
                           {{ $lead->artwork->title }} 
                            </td>
                            <td>
                           {{ $lead->profile->first_name }}


                            </td>
                            <td>

                            </td>
                            <td>        
                                <form action="{{ route('lead.delete') }}" method="POST">
                                @csrf
                                
                                    <input type="hidden" name="id" value="{{$lead->id}}">
                                    <button type="submit" class="btn btn-danger">delete</button>
                                </form>
                            </td>
                            </tr>
                        @endif

                        @endforeach

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM