Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP] Laravel problem
karlos398
post 24.01.2021, 19:53:35
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 24.01.2021

Ostrzeżenie: (0%)
-----


Witam , robie pewien projekt w laravelu i mam problem taki , że w momencie kiedy chce wczytać dane z metody "ajaxGetReservationData" która jest w moim backend controller wyskakuje mi błąd Failed to load resource: the server responded with a status of 500 (Internal Server Error)

CODE
<?php

namespace App\Http\Controllers;


use Illuminate\Http\Request;
use App\Systemrezerwacji\Gateways\BackendGateway;
use App\Systemrezerwacji\interfaces\BackendRepositoryInterface;
use Carbon\Exceptions\Exception;
use Illuminate\Support\Facades\App;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;


use function PHPUnit\Framework\throwException;

class BackendController extends Controller
{



public function __construct(BackendRepositoryInterface $bR, BackendGateway $bG)
{
$this->bR = $bR;
$this->bG = $bG;

}

public function index(Request $request)
{
$objects = $this->bG->getReservations($request);

return view('backend.index',['objects'=>$objects]);
}
public function ajaxGetReservationData(Request $request)
{

$reservation = $this->bR->getReservationData($request);


return response()->json([
'room_number' => $reservation->room_number,
'day_in' => $reservation->day_in,
'day_out' => $reservation->day_out,
'FullName' => $reservation->user->FullName,
'userLink' => route('person', ['id' => $reservation->user->id]),
'confirmResLink' => route('confirmReservation', ['id' => $reservation->id]),
'deleteResLink' => route('deleteReservation', ['id' => $reservation->id]),

'status' => $reservation->status,

]);


}

public function cities(){
return view('backend.cities');
}

public function myobjects(){
return view('backend.myobjects');
}
public function profile(){
return view('backend.profile');
}
public function saveobject(){
return view('backend.saveobject');
}
public function saveroom(){
return view('backend.saveroom');
}
public function confirmReservation($id)
{
return 'to do';
}
public function deleteReservation($id)
{
return redirect()->back(); /* Lecture 34 */
}
}


CODE
<?php

namespace App\Systemrezerwacji\Traits;

use Illuminate\Http\Request;


trait Ajax {




public function ajaxGetReservationData(Request $request)
{

$reservation = $this->bR->getReservationData($request);

return response()->json([
'room_number' => $reservation->room_number,
'day_in' => $reservation->day_in,
'day_out' => $reservation->day_out,
'FullName' => $reservation->user->FullName,
'userLink' => route('person', ['id' => $reservation->user->id]),
'confirmResLink' => route('confirmReservation', ['id' => $reservation->id]),
'deleteResLink' => route('deleteReservation', ['id' => $reservation->id]),
'status' => $reservation->status

]);
}


}


CODE
<?php

namespace App\Systemrezerwacji\Repositories;

use App\Systemrezerwacji\interfaces\BackendRepositoryInterface;
use App\Models\{TouristObject, Reservation};


class BackendRepository implements BackendRepositoryInterface {

public function getOwnerReservations($request)
{
return TouristObject::with([

'rooms' => function($q) {
$q->has('reservations');
},

'rooms.reservations.user'

])
->has('rooms.reservations')
->where('user_id', $request->user()->id)
->get();
}

public function getTouristReservations($request)
{

return TouristObject::with([

'rooms.reservations' => function($q) use($request) {

$q->where('user_id',$request->user()->id);

},

'rooms'=>function($q) use($request){
$q->whereHas('reservations',function($query) use($request){
$query->where('user_id',$request->user()->id);
});
},

'rooms.reservations.user'

])

->whereHas('rooms.reservations',function($q) use($request){

$q->where('user_id',$request->user()->id);

})
->get();
}
public function getReservationData($request)
{
return Reservation::with('user', 'room')

->where('room_id', $request->input('room_id'))
->where('day_in', '<=' ,$request->input('date'))
->where('day_out', '>=' , $request->input('date'))
->first();
}


}
Go to the top of the page
+Quote Post
netir
post 24.01.2021, 20:26:32
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 5
Dołączył: 20.05.2019

Ostrzeżenie: (0%)
-----


Włącz w .env DEBUG=true, w consoli php artisan config:clear i zobacz co dokładnie nie działa
Go to the top of the page
+Quote Post
karlos398
post 24.01.2021, 20:31:19
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 24.01.2021

Ostrzeżenie: (0%)
-----


Mam włączony wyskakuje Trying to get property 'room_number' of non-object
C:\xampp\htdocs\laravel\app\app\Http\Controllers\BackendController.php#48

Go to the top of the page
+Quote Post
netir
post 29.01.2021, 21:00:16
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 5
Dołączył: 20.05.2019

Ostrzeżenie: (0%)
-----


No to masz jak na tacy, próbujesz się dobrać jak do obiektu do czegoś co nim nie jest.

wrzuć linijkę z błędem do dd() bez ->room_number i zobacz co sobie przekazujesz, a następnie popraw.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 08:44