Передача сообщений просматривают идентификатор на другой контроллер, чтобы я мог получить доступ к записям таблицы в Laravel - PullRequest
0 голосов
/ 09 мая 2019

Итак, я получил страницу сообщений, где у меня есть свой пост. Сообщение имеет идентификатор, который приводит к таблице сообщений. Для этого у меня есть PostsController, где все доступно через $ post-> id, $ post-> name и т. Д.

Но у меня есть еще одна таблица с именем orders и кнопка отправки, ей нужна некоторая информация из таблицы posts по id.

У меня есть сообщение с URL-адресами / {id}, и в представлении есть кнопка отправки

Кнопка должна получить $ post информацию для OrdersController с информацией для отправки.

Я пробовал это в OrdersController

    public function store(Request $request)
{
    $this->validate($request, [
    ]);

    $post = Post::all();
    $order = new Order;
    $order->client = Auth::user()->name;
    $order->phone = Auth::user()->phone;
    $order->vehicle = $post->id;
    $order->date_from = $request->input('date_from');
    $order->save();

    return redirect('/posts')->with('success', 'Rezervēts');
}

$ posts = Post :: all (); получает всю информацию массива из таблицы, но не может использовать конкретный идентификатор.

А у меня это в PostsController

   public function show($id)
    {
        $post = Post::find($id);
        $images = Image::All();
        return view('posts.show')->with(compact('post', 'images'));
    }

Маршрут для функции шоу

Ошибка, которую я получаю с показанным кодом: Свойство [id] не существует в этом экземпляре коллекции.

Ожидаемые результаты: стол заказов

Ошибка: свойство [id] не существует в этом экземпляре коллекции. Проблема: Не удается получить точный идентификатор из представления на другой контроллер, поэтому я могу получить доступ к нужным записям в таблице сообщений из OrdersController.

Ps. Я был на большинстве страниц об этой ошибке, но не могу найти ту, которая бы помогла.

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Хорошо, спасибо. Решено: {{ Form::hidden('id', $post->id) }} в поле зрения. Контроллер: $post = Post::findorfail($request->id); Тогда: $post->(whatever you need from table)

0 голосов
/ 09 мая 2019

Я бы изменил маршрут так, чтобы пост затронул.

Маршрут:

Route::post('/order/{post}/store', 'OrderController@store')->name('order.store');

Контроллер (метод хранения):

public function store(Post $post, Request $request){
    $this->validate($request, [
    ]);

    $order = new Order;
    $order->client = Auth::user()->name;
    $order->phone = Auth::user()->phone;
    $order->vehicle = $post->id;
    $order->date_from = $request->input('date_from');
    $order->save();

    return redirect('/posts')->with('success', 'Rezervēts');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...