Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2020, 12:29   #1
v_chumakov
Новичок
Джуниор
 
Регистрация: 30.01.2020
Сообщений: 4
По умолчанию Передать переменную из модели вконтроллер

Нахожусь в процессе изучения Laravel
Споткнулся о передачу переменной.
Есть модель:
public function BookId($id){
$book_id=Book::table(`book`)->were(`id`, $id)->first();
return $book_id;
}
Есть контроллер:
public function Take_book(BookModel $book_id){
$num_book=$book_id->BookId($id);
foreach($num_book as $book_id){
print $book_id($id);
}
}
Передаю строку из базы данных MySQL
Цель вывести строку по запросу:
Route::get('book/{id}','Book@Take_book');
Результат:
Undefined variable: id
Понимаю, что всё должно быть элементарно, но победить не могу. Помогите пожалуйста!
v_chumakov вне форума Ответить с цитированием
Старый 30.01.2020, 13:10   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

1. какая то странная модель. зачем все эти пляски с бубуном по вытаскиванию id книги, если это и есть $id только для проверки - существует ли?
2. что за бред
-
Код:
print $book_id($id);
- $book_id не функция
- метод BookId возвращает 1!!! экземпляр Book - ибо first()
3.
Код:
Route::get('book/{book_id}','Book@Take_book');
- имена должны совпадать
ADSoft вне форума Ответить с цитированием
Старый 30.01.2020, 13:36   #3
v_chumakov
Новичок
Джуниор
 
Регистрация: 30.01.2020
Сообщений: 4
По умолчанию

ADSoft, Цель: вывести по запросу(id) , a id содержится в полученном
v_chumakov вне форума Ответить с цитированием
Старый 30.01.2020, 14:15   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну обычно в модель не суют то чего не нужно - в вашем случае - запрос на выборку
и получится что-то вроде
Код:
Есть контроллер:
public function Take_book(BookModel $book){
print $book;
}

Route::get('book/{book}','BookController@Take_book');
да-да, это магия ларавела, если имена в маршруте и объявлении метода контролера одинаковые и явно указан путь - Лара сама сделает нужный запрос
ADSoft вне форума Ответить с цитированием
Старый 30.01.2020, 16:50   #5
v_chumakov
Новичок
Джуниор
 
Регистрация: 30.01.2020
Сообщений: 4
По умолчанию

ADSoft,
Решение:
модель:
public function BookId($id){
$book_id=Book::where('id', $id)->first();
return $book_id;
}
контроллер:
function Take_book(BookModel $book_id, $id){
$num_book=$book_id->BookId($id);
print 'Взять книгу :'.$num_book->id.$num_book->name.$num_book->author;
}
роут:
Route::get('book/{id}','Book@Take_book');
v_chumakov вне форума Ответить с цитированием
Старый 30.01.2020, 20:12   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Цитата:
Ежики плакали, кололись - но лезли на кактусы
как говорится - кто не хочет увидеть - то и не увидит
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передать переменную из js in php Hattak Помощь студентам 2 14.05.2016 15:58
Передать переменную OliverVood JavaScript, Ajax 8 25.07.2013 09:16
передать переменную mihailjack JavaScript, Ajax 1 17.10.2012 20:37
Как передать переменную с javascript в php master3763 JavaScript, Ajax 8 29.11.2010 18:27
передать переменную ar4i Общие вопросы Delphi 10 04.12.2006 14:30