Daily log #18
Привет ребят, стараюсь потихоньку вернуться в режим! Причину отсутствия постов я описал постом выше, а сейчас давайте перейдем непосредственно к логу :D
Программирование
Я написал второй сайт( в стол конечно же ), а именно форум. Особых проблем не возникло, но появилась вещь над которой нужно было задуматься. Так как это форум, то помимо вопросов здесь есть еще и ответы, которые должны быть привязаны к определенным вопросам. В модели это делается через Foreign Key( ссылочный ключ ).
То есть ключом модели вопроса является Id, значит ссылочный ключ модели ответа должен ссылаться на этот Id. Ошибка у меня возникла при добавлении нового вопроса, суть ее заключалась в том, что ссылочные ключи не могут установиться автоматически( например как Id ), их нужно прописывать ( например как текст или заголовок ).
Так как задавать Id вопроса которому дается ответ со стороны клиента( например в форме ) было бы глупо, я начал пробовать задавать его не посредственно в функции контроллера. В итоге пришел к следующему варианту:
[HttpPost] public async Task<IActionResult> Ask(Answer answer, int? id) { Ask ask = await adb.asks.FirstOrDefaultAsync(p => p.AskId == id); answer.AskId = ask.AskId; adb.answers.Add(answer); await adb.SaveChangesAsync(); return RedirectToAction("Index"); } public async Task<IActionResult> Ask(int? id) { if (id != null) { IQueryable<Answer> answers = adb.answers.OrderByDescending(p => p.AnswerId); var text = answers.Where(p => p.AskId == id).ToList(); Ask ask = await adb.asks.FirstOrDefaultAsync(p => p.AskId == id); if (ask != null) { AskViewModel viewModel = new AskViewModel { ask = ask, getAllAnswers = text }; return View(viewModel); } } return NotFound(); }
Первая функция добавляет ответ в базу данных, ссылаясь на id вопроса, который сейчас открыт в отдельной ссылке. А вторая функция просто выбирает определенный вопрос из базы данных по id. Выбирает нужные ответы с ссылочным ключом равным id вопроса. Все это передает во ViewModel и в последствии выводит во View.
Возможно кому-то это было полезно, а сейчас хочу сказать пару слов о планах на ближайшие 1-2 недели. Я хочу сверстать несколько шаблонов для того чтобы подтянуть html, bootstrap и css. Скорее всего несколько шаблонов я реализую и добавлю функционал.
P.s. если у вас какие-нибудь шаблоны по которым можно верстать киньте в лс <3
Телеграм
Завтра беру интервью у нового гостя, можете попробовать догадаться какой его основой ЯП.
Вообще сейчас думаю над новым контентом, так как хочу время от времени разбавлять массу логов и интервью. Пока что есть только одна идея, но ее сложно реализовать в статье поэтому нужно подкорректировать реализацию.
P.s. если у вас есть какие-то пожелания можете писать мне в лс. Всегда рад слышать свежие идеи и конструктивную критику
Школа
Вообщем, со школой все покончено я уже видел свой аттестат и выглядит даже хорошо если учитывать что первые два триместра я почти забил на учебу. Вышли все четверки и четыре пятерки. Учебники я сдал, осталось только получить эту подставку пот чай и подать документы.
Портфолио я оформил, так что дальше от меня особо ничего не зависит.
Ну а на сегодня все, скоро вернусь в режим и будет лучше чем раньше!!!
Удачи, программисты