我正在尝试从两个不同的表(例如表A和 表B这两个表都具有user_id和ticket_id列,我正在尝试 显示auth id和user_id是否与表A ticket_id相同 和表B ticket_id相同,然后在view.blade.php中显示或显示数据,
我尝试了下面的代码,但是它无法正常显示我的URL错误
如果我修改而不是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)◀”
答案 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”;