Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Потеря имя файла при загрузке » 26.11.2018 13:40:55

1 шаг, когда вы в контроллере и получаете из реквеста файл - вам нужно запросить его имя ->getClientOriginalName() как пример, и потому уже его создавать с этим именем, можете добавить к имени временную метку, чтобы файлы не заменяли друг друга, вы сами проектируете и программируете своё творение, как хотите так и крутите, чтобы имя такое не было "skmdo3453942294593.pdf" ->

$image=Input::file('image');
$fullName=$image->getClientOriginalName();

2 шагом создавайте его с именем который в $fullName (пример!)

#2 Re: Laravel 5.x » Как создать форму с кнопкой для удаления записи? (с роутом resource) » 26.11.2018 13:34:35

црф токен потом вы делаете для того чтобы кроме вас никто не учудил, если у вас роуты админки защищены и требуют авторизации, то можно и без токена гетом передавать, ничего тут правильного или не правильного нет, это просто удобство, а ещё вы можете фронт подключить и аяксом всю дич удалять, и получать ответ - что всё гуд) тут нету правил, если дыр нету, правильно или нет

#3 Re: Laravel 5.x » Как создать форму с кнопкой для удаления записи? (с роутом resource) » 19.11.2018 10:38:16

Воообще если вы в админке (то есть у вас защищена та страница с которой вы всё удаляете) проще всего гетом убрать
Роут:

Rouget::get('url/admin..../delete/{id}', 'AdminController@deleteid');

Контроллер:

public function deleteid($id){
$delete = Post::find($id);
$delete->delete();
Session::flash('message', 'Запись '.$id.' - успешно удалена!');
return redirect('url/admin..../');
}

Вьювер

@if (Session::has('message'))
            <div class="alert alert-info">{{ Session::get('message') }}</div>
        @endif
<ul>
@if(isset($posts))
@foreach($posts as $post)
<li>$post->title - <a href="{{url('/url/admin..../delete').'/'.$post->id}}">Удалить</a></li>
@endforeach
@endif
</ul>

пс. написал как пример, естественно нужно всё делать в форме и т.д., но если на эту страницу может зайти только админа например, можно удалять таким методом, п.с. незабудьте сделать какую нить подтверждалку, типо, да конечно - удалить)

#4 Re: Laravel 5.x » Сообщение при успешном действии » 19.11.2018 10:09:35

В контроллере:
Добавьте
use Illuminate\Support\Facades\Session;

        Session::flash('message', 'Ваш отзыв оставлен, Или регистрация успешна!');
        return redirect('/');

В вьювере туда куда делается редирект:

@if (Session::has('message'))
            <div class="alert alert-info">{{ Session::get('message') }}</div>
        @endif

Через фасад идите через сессион флеши и проблем не будет, всё огонь, для ошибок, для успехов, для всего!

#5 Re: Laravel 5.x » ЧПУ взять параметры из url и передать в контроллер » 19.11.2018 10:04:42

А если вы хотите передать в контроллер 2штучки

Route::get('reviews/ford/{idford}/{colorford}', 'NameController@fordgowithcolor');

Контроллер

public function fordgowithcolor($idford, $colorford){
$ford = Ford::where('id', $idford)->where('color', $colorford)->get()->first();
return view('page.ford',[
'ford' => $ford,
]);
}

#6 Re: Laravel 5.x » ЧПУ взять параметры из url и передать в контроллер » 19.11.2018 10:00:47

В роутере:

Route::get('reviews/ford', 'NameController@fordall');
Route::get('reviews/ford/{idford}', 'NameController@fordgo');

В контроллере:

public function fordall(){
$fords= Ford::all()
return view('page.fords',[
'fords' => $fords,
]);
}

public function fordgo($idford){
$ford = Ford::where('id', $idford)->get()->first();
return view('page.ford',[
'ford' => $ford,
]);
}

Есть гет запросы: Route::get('reviews/ford', 'NameController@fordall'); - показать нам все форды (с пагиницией, количество элементов в контроллере - функция для пагинации {{ $fords->links() }} -> то о чем вы писали в ваш роутер нужно писать сюда, какие то может якоря и т.д. может 2 пагинации быть на странице как пример.

Есть гет запрос 2ой: Route::get('reviews/ford/{idford}', 'NameController@fordgo'); - показать нам конкретный форд, тут мы как раз и передаём в динамическую данную например {idford} - ид форда, и вы его передаёте таким методом в контроллер, в котором вы ищите по ид в базе нужный вам форд и послываете на вьювер, в вьювере вы уже себе отображаете как хотите.

Делайте ваше приложение правильно с начала.
Используйте Route::get, Route::post, Route::resource, Пагинация должна быть на стороне клиента, нечего ей делать на стороне сервера! Вы уже передаёте с сервера построенную пагинацию!

Подвал раздела