protected $appends = ['prev_product_json'];
public function getPrevProductJsonAttribute()
{
$product = Product::where('id', '<', $this->id)->first() ?? Product::where('id', '>', $this->id)->first();
return isset($product) ? $product->toJson() : NULL;
}
$product = Product::find(2);
dd($product->prev_product_json);
protected $hidden = ['field_name'];
Route::get('/catalog/{category_name?}/{tip_vyezda?}/{sex?}/', 'FrontController@showCatalog')->name('show.Catalog');
/*Где то в FrontController*/
public function showCatalog() {
$category_name = request()->category_name;
//и тд, обработчик проверки и прочее
}
Route::post('/update',['uses'=>'Admin\AdminPostController@saveUp', 'as'=>'admin_update_post']);
Route::post('update/{id}', 'Admin\AdminPostController@saveUp');
Route::resource('/products', 'ProductController@showProduct')->name('showProduct');
//Где-то в ProductController
public function showProduct ($slug = '')
{
if (is_numeric($slug))
{
//по айди
$product = App\Product::find($slug);
return redirect()->route('showProduct', ['slug' => $product->slug]);;
}
else
{
//по слагу
$product = App\Product::findBySlug($slug); //ну допустим у нас есть этот метод и он ужасно засунут в саму модель, но да ладно
}
}
return redirect()->route('contact')->withInput($request->all);
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class ContactController extends Controller
{
public function showContactForm()
{
return view('default.contact')->withTitle('Contacts');
}
public function storeContactForm(Request $request, $id=FALSE)
{
return redirect()->route('front.showContactForm')->withInput($request->all);
}
}
Route::get('/contcats', 'ContactController@showContactForm')->name('front.showContactForm');
Route::post('/contcats', 'ContactController@storeContactForm');
<input type="text" name="username" value="{{ old('username') }}">
//photo - имя поля
if ($request->hasFile('photo')) {
$files = request()->file('photo');
foreach ($files as $file) {
//вернет имя файла, как он будет сохранен.
$name = $file->store('photo','public')]);
}
}
/storage/app/public/photo
( см первый параметр $file->store, это папка куда, второй тип хранения, для всех или другой), чтобы прокинуть ее в public для доступа извне, есть команда php artisan storage:link
- создания симлинка на эту папку в публичной диреткории.Route::get('catalog/{mode?}', 'CatalogController@index');
у тебя все же используется переменная в качестве параметра роутера(пути), знак вопроса говорит нам о том что он опционален, может быть, а может и не быть. Ну и да по факту это часть get запросов.request()
:***
$mode = request()->mode;
***
$view = cache("page-{$product->id}", function () {
$view = view('product.index', ['product' => $product])->render();
cache(["page-{$product->id}" => $view], 180);
return $view;
});
return $view;