• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

obserwacja artykułów back-end laravel

0 głosów
99 wizyt
pytanie zadane 20 września 2018 w PHP, Symfony, Zend przez mi-20 Stary wyjadacz (10,240 p.)

Witam, jak powinna wyglądać obserwacja artykułów po stronie back-endu. Oczywiście, po kliknięciu w "FOLLOW" do bazy zostają dodane dane takie jak 

user_id
article_id

jednak chcę, aby kiedy użytkownik kliknie FOLLOW przycisk zmienił się na UNFOLLOW, tak jak jest np na olx tylko z obserwacją ogłoszeń i wielu innych serwisach. Ogarnąłem to po stronie frontu jednak wiadomo, po odświeżeniu wracamy do zera. Po stronie back używam Laravela front jest w Vue

komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)
Podaj kod to pokaże jak.
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (10,240 p.)

na razie mam tylko kod dodawania danych obserwowanego artykułu

public function store(FollowArticleRequest $request){
        $follow = new FollowArticle();
        $follow->user_id = Auth::user()->id;
        $follow->article_id = $request->article_id;
        $follow->save();
        return response()->json([
            'status' => 'success',
            'msg' => 'Dodano do obserwowanych!'
        ]);
    }

 

komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)
A kod który zwraca artykuł masz ? Jeśli tak to go podaj.
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (10,240 p.)
public function view($id)
    {
        $article = Article::findOrFail($id);
        return response()->json([
            'data' => [
                'article' => $article
            ]
        ], 200);
    }

 

komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)
A masz jakomś relacje ?
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (10,240 p.)
konkretni zdefiniowanej w laravelu jeszcze nie. Po prostu w tabeli FollowArticle mam kolumnę article_id i wiem który artykuł obserwuję

1 odpowiedź

0 głosów
odpowiedź 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)
wybrane 30 września 2018 przez mi-20
 
Najlepsza

Utwórz relacje i potem 

public function view($id)
    {
        $article = Article::with("RELACJA")->findOrFail($id);
        return response()->json([
            'data' => [
                'article' => $article
            ]
        ], 200);
    }

później napisz kod frontend

komentarz 20 września 2018 przez mi-20 Stary wyjadacz (10,240 p.)
jak ma wyglądać owa relacja?
komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)

W modelu article

public function follow(){
return $this->hasMany("App\FollowArticle","article_id","id");
} 

w klasie 

komentarz 20 września 2018 przez mi-20 Stary wyjadacz (10,240 p.)
ok, a "RELACJA" to nazwa klasy czyli w tym przypadku "follow"?
komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)
Tak i wyślij frontend
komentarz 30 września 2018 przez mi-20 Stary wyjadacz (10,240 p.)

no i teraz jednak nie wiem jak dopisać front

mam

 data() {
      return {
        follow: false
      }
    },


computed: {
      ...mapGetters({
        addFollowArticle: 'addFollowArticle',
        unFollow: 'unFollow'
      })
    },
methods: {
      addFollow() {
        this.$store.dispatch('addFollowArticle', this.$route.params.id)
      },

      unFollow() {
        this.$store.dispatch('deleteFollowArticle', this.$route.params.id)
      }

    },
<!-- subscribe widget -->
            <div class="widget subscribe-widget">
              <button v-if="!follow" class="input-btn w-100" @click="addFollow()"><i
                class="fa fa-star-o"></i> <span id="uFollow">
                Obserwuj
              </span>
              </button>
              <button v-else class="input-btn w-100" @click="unFollow()"><span class="fa fa-star"></span> Obserwujesz
              </button>
            </div>
            <!-- /subscribe widget -->

i teraz jak sprawdzić czy aktualnie zalogowany użytkownik obserwuje dany artykuł, gdzie zrobić tego ifa i zmieniać zmienną follow

dane z api otrzymuję w takiej formie

{
    "data": {
        "article": {
            "id": 2,
            "user_id": 2,
            "title": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
            "description": "description",
            "body": "content",
            "created_at": "2018-09-30 09:26:32",
            "updated_at": "2018-09-30 09:26:32",
            "follow": [
                {
                    "id": 13,
                    "user_id": 2,
                    "article_id": 2,
                    "created_at": "2018-09-30 12:31:22",
                    "updated_at": "2018-09-30 12:31:22"
                }
            ]
        }
    }
}

 

komentarz 30 września 2018 przez Igor Gawrys Stary wyjadacz (12,240 p.)
methods:{
IsFollow(){
let return_data;
dane.filter(folow)=>{
if(!return_data){
return_data = follow.user.id==dane_user.id
}
});
}
}

Jeszcze zrób relacje użytkownika do follow

PS: WŁASNIE PRACUJE NAD PROJEKTEM W VUE

Podobne pytania

+1 głos
5 odpowiedzi 566 wizyt
0 głosów
1 odpowiedź 260 wizyt
0 głosów
2 odpowiedzi 111 wizyt
pytanie zadane 25 listopada 2018 w HTML i CSS przez Byczek_ Bywalec (2,540 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

63,402 zapytań

109,669 odpowiedzi

229,145 komentarzy

44,691 pasjonatów

Przeglądających: 304
Pasjonatów: 22 Gości: 282

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...