Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Создаю список статей, и нужно мне чтобы каждое название было ссылкой на определенную статью. Ссылка на статью у меня вот какая:
Route::get('post/{post}', ['as' => 'post.show', 'uses' => 'PostController@show']);
Вывести ссылку хочу при помощи хелпера.
вот примерно так: {!! link_to_route('posts', 'Главная') !!} но это ссылка на список, где нету изменяющегося параметра {post}
как передать значение этого самого {post} при помощи хелпера? не хочу делать обычной ссылкой.
{!! link_to_route('post.show', '$post->title') !!} вот примерно такой у меня роут и нужно кудато всобачить $post->slug (как определение статьи), но понять немогу куда, а в доке нету этого.
Не в сети
Это 4 ларавел?
в 5 нет уже link_to_route
Значит если пока и работает, то скоро выпилят
В 4 версии есть документация для нее https://laravel.com/docs/4.2/helpers
link_to_route('route.name', $title, $parameters = array(), $attributes = array());
Параметры роута массивом передаются третьим параметром
Не в сети
5 laravel. устанавливал хелпер дополнительно, по умолчанию не работал. сделал, работает, но немного не так как в доке
{!! link_to_route('post.edit', 'Edit', $post->slug) !!}
И если его нет в 5, то на что его заменили? Ато у меня на сайте все ссылки на этом хелпере, лучше уже буду перестраивать по нормальному.
Как предпочтительно сейчас делать внутренние ссылки?
Не в сети
Этот хелпер наверное частью HTML был, который уехал в collective?
Сейчас есть просто route https://laravel.com/docs/5.2/helpers#method-route
Не в сети
да, часть Html. действительно подключал хелпер по советам еловека который любил ларавел 4))
сейчас написал вот так: <a href="{!! route('post.edit', ['id' => $post->slug]) !!}">Edit</a> верно?
Изменено Nifler (31.03.2016 17:56:54)
Не в сети
https://laravelcollective.com/docs/5.2/html
да, часть Html. действительно подключал хелпер по советам еловека который любил ларавел 4))
сейчас написал вот так: <a href="{!! route('post.edit', ['id' => $post->slug]) !!}">Edit</a> верно?
Если работает, то верно )
По идее так должно быть
['post' => $post->slug] Согласно имени переменной в твоем роуте
Не в сети
работает и так. кажется неважно название переменной. просто вставляет значение в переменную.
Не в сети
Не в сети
еще консультативный вопрос.
сейчас у меня статьи добавляются вот так
public function store(Post $postModel, Request $request)
{
$post= new Post;
$post=$postModel->create($request->all());
$post->save();
return redirect()->route('posts');
}
тут, как я понимаю берутся все данные формы и записываются в таблицу в те поля которые совпадают по названию с названием полей в форме.
так стоит делать или лучше все по отдельности? так как сейчас сделать все аналогично для изменения статей не получается.
Не в сети
Зачем тебе два объекта?
один ты через DI создаешь
Post $postModel
второй руками $post= new Post;
и сразу его переопределяешь?
Можно делать так вполне (не забудь прописать fillable)
И не забудь валидацию добавить
Не в сети
public function store(Post $postModel, Request $request)
{
$this->validate($request, [
'title' => 'required|unique:posts|max:255',
'slug' => 'required|unique:posts|max:255',
'excerpt' => 'required|unique:posts|max:255',
'content' => 'required|unique:posts|max:255',
'published_at' => 'required|max:255',
]);
$postModel = $postModel->fill($request->all());
if($postModel->published == "on"){
$postModel->published = 1;
}
else {
$postModel->published = 0;
}
$postModel->save();
return redirect()->route('posts');
}
Страницы 1