PHP Laravel - routing - Object of class stdClass could not be converted to string
Dobrý den,
tápu při vytváření správné route ve frameworku Laravel, resp. nevím jak správně předat instanci objektu v route - jak jí předat pro GET. Konkrétně mám v jednom souboru show.blade.php odkaz na editaci přes link
CHYBA
---------------------------------------------------
Facade\Ignition\Exceptions\ViewException
Object of class stdClass could not be converted to string (View: /var/www/laravel/dev1/resources/views/item/analyzer.blade.php)
route web.php
---------------------------------------------------
show.blade.php
---------------------------------------------------
-
-
-
-
Když změním DB dotaz na funkci get() v route web.php tzn.
Nová CHYBA
---------------------------------------------------
Facade\Ignition\Exceptions\ViewException
Missing required parameters for [Route: item.edit] [URI: item/{item}/edit]. (View: /var/www/laravel/dev1/resources/views/item/analyzer.blade.php)
Dobrý den,
chybu v Laravel "Object of class stdClass could not be converted to string" můžete zkusit vyřešit v route/web.php tak, že upravíte výběr z DB na instanci Item takto:
tápu při vytváření správné route ve frameworku Laravel, resp. nevím jak správně předat instanci objektu v route - jak jí předat pro GET. Konkrétně mám v jednom souboru show.blade.php odkaz na editaci přes link
route('item.edit', ['item' => $item])
. CHYBA
---------------------------------------------------
Facade\Ignition\Exceptions\ViewException
Object of class stdClass could not be converted to string (View: /var/www/laravel/dev1/resources/views/item/analyzer.blade.php)
route web.php
---------------------------------------------------
Route::get('/item/analyzer/{item_id}/{upload_id}', function ($item_id, $upload_id) {
$item = DB::table('items')->where('id', $item_id)->first();
$upload = DB::table('uploads')->where('id', $upload_id)->first();
$t = new App\Http\Controllers\itemController;
return view('item.analyzer', ['results' => $t->handleAnalyze($item_id, $upload_id), 'item' => $item, 'upload' => $upload ]);
});
show.blade.php
---------------------------------------------------
< a href="{{ route('item.edit', ['item' => $item]) }}" class="btn btn-primary">Edit
-
-
-
-
Když změním DB dotaz na funkci get() v route web.php tzn.
$item = DB::table('items')->where('id', $item_id)->get();
Nová CHYBA
---------------------------------------------------
Facade\Ignition\Exceptions\ViewException
Missing required parameters for [Route: item.edit] [URI: item/{item}/edit]. (View: /var/www/laravel/dev1/resources/views/item/analyzer.blade.php)
ODPOVĚĎ
Dobrý den,
chybu v Laravel "Object of class stdClass could not be converted to string" můžete zkusit vyřešit v route/web.php tak, že upravíte výběr z DB na instanci Item takto:
'item' => Item::find($item_id)
Show english version
use App\Item;
...
Route::resource('item', 'ItemController'); // only CRUD
Route::get('/item/analyzer/{item_id}/{upload_id}', function ($item_id, $upload_id) {
$upload = DB::table('uploads')->where('id', $upload_id)->first();
$t = new App\Http\Controllers\ItemController;
return view('item.analyzer', ['results' => $t->handleAnalyze($item_id, $upload_id), 'item' => Item::find($item_id), 'upload' => $upload ]);
});