• 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

VPS Starter Arubacloud
0 głosów
191 wizyt
pytanie zadane 20 września 2018 w PHP przez mi-20 Stary wyjadacz (13,190 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,460 p.)
Podaj kod to pokaże jak.
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 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,460 p.)
A kod który zwraca artykuł masz ? Jeśli tak to go podaj.
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 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,460 p.)
A masz jakomś relacje ?
komentarz 20 września 2018 przez mi-20 Stary wyjadacz (13,190 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,460 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 (13,190 p.)
jak ma wyglądać owa relacja?
komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 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 (13,190 p.)
ok, a "RELACJA" to nazwa klasy czyli w tym przypadku "follow"?
komentarz 20 września 2018 przez Igor Gawrys Stary wyjadacz (12,460 p.)
Tak i wyślij frontend
komentarz 30 września 2018 przez mi-20 Stary wyjadacz (13,190 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,460 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
1 odpowiedź 219 wizyt
pytanie zadane 30 września 2020 w JavaScript przez Artek Stary wyjadacz (11,800 p.)
0 głosów
0 odpowiedzi 244 wizyt
pytanie zadane 21 października 2019 w PHP przez xxx1990 Początkujący (490 p.)
+1 głos
5 odpowiedzi 1,468 wizyt
pytanie zadane 17 września 2018 w Rozwój zawodowy, nauka, praca przez AreeQ Początkujący (290 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...