laravel查看表值,而不是使用$ id到$ ticket_id

时间:2019-06-11 09:57:38

标签: laravel laravel-5.7 laravel-5.8

我正在尝试从两个不同的表(例如表A和 表B这两个表都具有user_id和ticket_id列,我正在尝试 显示auth id和user_id是否与表A ticket_id相同 和表B ticket_id相同,然后在view.blade.php中显示或显示数据,

我尝试了下面的代码,但是它无法正常显示我的URL错误

  

http://127.0.0.1:8004/ticket_chat/1560242956

如果我修改而不是ticket_id到表ID号

http://127.0.0.1:8004/ticket_chat/1

工作正常。

问题是我没有通过使用ticket_id获取数据,而我却得到了 放置id时输入数据,我不使用显示数据编写任何代码 表格ID。

我的控制器

public function ticket_chat($ticket_id )
        {  
              $notification = Notification::where('status','ACTIVE')->get(); 
              $ticket_chat = Ticket::where('user_filter_id','=',Auth::id())->where('status','=','OPEN')->find($ticket_id );
              $message = Ticket_Chat::where('user_filter_id','=',Auth::id())->find($ticket_id );
              return view('User/ticket.ticket_chat',compact('notification','message','ticket_chat'));
        }

我的路线

Route::get('ticket_chat/{ticket_id }', 'TicketController@ticket_chat');

我的观点

@include('User/support/support_header')
 <div class="page-wrapper">
            <!-- ============================================================== -->
            <!-- Container fluid  -->
            <!-- ============================================================== -->
            <div class="container-fluid">
                <!-- ============================================================== -->

                <div class="row">
                 <div class="col-12">
                        <div class="card m-b-0">
                            <!-- .chat-row -->

                                <!-- .chat-left-panel -->

                                <!-- .chat-left-panel -->
                                <!-- .chat-right-panel -->
                                 <div class="chat-right-aside">
                                    <div class="chat-main-header">
                                        <div class="p-20 b-b">
                                            <h3 class="box-title"><u>Ticket Message</u></h3>


                                           <h4 class="text-uppercase"class=" box bg-light-primary">{{ $ticket_chat->subject }}</h4>
                                           <h4 class="text-uppercase "class="box-title">{{ $ticket_chat->ticket_id }}</h4>


                                        </div>
                                    </div>
                                    <div class="chat-rbox">
                                        <ul class="chat-list p-20">
                                            <!--chat Row -->
                                            <li>
                                                <div class="chat-img"><img src="1.jpg" alt="user" /></div>
                                                <div class="chat-content">
                                                    <h5>James Anderson</h5>
                                                    <div class="box bg-light-info">Lorem Ipsum is simply dummy text of the printing & type setting industry.</div>
                                                </div>
                                                <div class="chat-time">10:56 am</div>
                                            </li>
                                            <!--chat Row -->

                                            <!--chat Row -->
                                            <li class="reverse">
                                                <div class="chat-time">10:57 am</div>
                                                <div class="chat-content">
                                                    <h5>{{ Auth::user()->name }}</h5>
                                                    <div class="box bg-light-inverse">{{ $message->message }}</div>
                                                </div>
                                                <div class="chat-img"><img src="1.jpg" alt="user" /></div>
                                            </li>
                                            <!--chat Row -->

                                            <!--chat Row -->

                                            <!--chat Row -->
                                        </ul>
                                    </div>
                                    <div class="card-body b-t">
                                        <div class="row">
                                            <div class="col-8">
                                                <textarea placeholder="Type your message here" class="form-control b-0"></textarea>
                                            </div>
                                            <div class="col-4 text-right">
                                                <button type="button" class="btn btn-info btn-circle btn-lg"><i class="fas fa-paper-plane"></i> </button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <!-- .chat-right-panel -->
                            </div>
                            <!-- /.chat-row -->
                        </div>
                    </div>
                </div>
       @include('User/footer')

我的错误

  

“试图获取非对象的属性“主题”(视图:C:\ ticket \ resources \ views \ User \ ticket \ ticket_chat.blade.php))”

     

“试图获取非对象的属性'ticket_id'(视图:C:\ ticket \ resources \ views \ User \ ticket \ ticket_chat.blade.php)◀”

     

“试图获取非对象的属性“消息”(视图:C:\ ticket \ resources \ views \ User \ ticket \ ticket_chat.blade.php)◀”

2 个答案:

答案 0 :(得分:0)

我不确定,但是我想你的问题是,您使用的是“查找”条件,该条件会自动使用模型的主键列“ id”,因此,如果要使用它,则必须修改模型类,添加以下行。

机票型号:

protected $primaryKey="ticket_id"; // default value is = id

通过上述更改,可能满足以下条件:

$ticket_chat = Ticket::where('user_filter_id','=',Auth::id())->where('status','=','OPEN')->find($ticket_id );

因此,如果您不想更改模型中的主键,则可以尝试为此修改条件:

$ticket_chat = Ticket::where('user_filter_id','=',Auth::id())
                ->where('status','=','OPEN')
                ->where("ticket_id",$ticket_id )
                ->first();

希望我能对您有所帮助

致谢

答案 1 :(得分:0)

在Laravel Find方法中,该方法仅适用于Table的主键,在大多数情况下,默认ID被视为主键。

将其从ticket_id更改为id,或将以下行添加到票证模型

受保护的$ primaryKey =“ ticket_id”;